Last Update at
C言語の基礎

*目次* (C++関連は覚えておいた方がいい程度しか書いてません)

1.変数の意味,使い方
2.配列の意味,使い方
3.構造体の意味,使い方
4.関数の作り方,使い方
5.引数の意味,使い方
6.戻り値の意味,使い方
7.データ型とは?
8.ポインタの意味,使い方
9.C++とは?(1.カプセル化2.多態性3.継承)
10.構造化プログラミングとは?
11.オブジェクト指向プログラミングとは?
12.プロジェクトファイルとは?
13.クラスについて
14.ライブラリ,クラスライブラリとは?



☆1.変数の意味,使い方
	変数とは読んで字のごとく"変わる数字"です。
        C言語では"格納する場所"の事を言います。
        int a;と書くとint型(-32768~32767)のaと言う変数を宣言する事です。
        中に一つの数字(-32768~32767)を入れることができます。
        関数外で宣言されている変数をグローバル変数(広域的変数),
        関数内で宣言されている変数をローカル変数(局所的変数)といいます。
        グローバル変数はそのソースのどこでも,ローカル変数はその関数のみが
        通用範囲です。 ここで言う"int"などが"データ型"といわれるものです。

☆2.配列の意味,使い方
	配列とは"変数の奥行きがある版"です。
	int a[50];
	と書くとint型のaと言う配列を宣言する事です。
	中に(この場合)50個の変数を入れることができます。

☆3.構造体の意味,使い方
	構造体とは"いくつもの変数や配列を一つにしたデータ型を宣言する"ことです。
        <<例>>
        struct student{
        char name[20];
        int kokugo;
        int sannsuu;
        };
        ここでstudentはタグ名,name,kokugo,sannsuuなどはメンバ名といいます。
        これはstudent型の構造が明示されただけで,それが使用出来るわけでは
        ありません。実際に使用するには変数名を宣言して必要なメモリ領域を確保してやります。
        定義されたstudent型の変数を宣言するには、
        student seito;
        とします。これで,student型をもつ変数seitoを宣言したことになります。
        2つの変数を宣言するなら,
        student seito1,seito2;
        の様にします。また,構造体の配列を用いるなら,
        student seito[100];
        の様にします。
        メンバ名と普通の変数は同じ名前を使っても衝突する事はありません。
        
(*)メンバの変数を”メンバ変数”といい,メンバの関数を”メンバ関数”といいます。 Cではメンバに関数を指定する事は出来ませんがC++(しーぷらぷら)ではできます。

☆4.関数の作り方,使い方
	関数とはprintfやscanfなどの事をいいます。(これでわかります?(^^;)
        関数は自分でも作れます。
        その場合はデータ型と関数名と引数を記入してやればいいです。
        int add(int a,int b)
        {
        	return a+b;
        }
        こうするとint型の引数がaとbでこの二つの変数を足し算する
        関数が出来ました。
        戻り値に足した値が帰ってきます。
        よく使う部分を関数化すれば労力の節約にもなりますし,容量も少なくなります。
        この関数を呼び出す場合は呼び出す場所よりもこの関数が上で,
        宣言されていなければなりません。

☆5.引数の意味,使い方
	関数を呼ぶときに渡す値の事です。たとえば,
        void rei(int a)
        {
        ・・・
        }
        とある場合aが引数です。
        そうする事により関数reiの中でaの値を継続して使えます。

☆6.戻り値の意味,使い方
	関数から戻ってくる時に渡す値です。たとえば,
        int rei(int a) 
	{
		a=a+a;
		return a;
	}
        とある場合aが戻り値です。この場合aの値が2倍になって帰ってきます。

☆7.データ型とは?
	◎データ型は基本的に4種類あります。
        基本データ型
        ┣━文字型 (char)
        ┣━整数型 (int)
        ┣━浮動小数点型 (float double)
        ┗━型なし (void)
        ☆データ型一覧☆ 
       
宣言名 メモリ(Byte) 呼称
char 文字型
unsigned char 符号なし文字型
int 整数型
unsigned int 符号なし整数型
short int 短長整数型
long 整数型
double 実数型
long double 10 拡張精度実数型
注:int型のサイズはC処理系によっては変わります。 8086系CPU = 2バイト 68000系CPU = 4バイト Windows = 4バイト 符号なしとは,マイナス値をなくしてプラス値の表現できる値を増やすことです。 unsigned intなら(-32768~32767)が(0~65535)になります。

☆8.ポインタの意味,使い方
	ポインタはデータの処理に直接番地を指定したりするときに使います。
        *ポインタ演算子
        & 変数のアドレスを取り出す。
        * そのポインタの値を取り出す。
        p = &a;//変数aのアドレスをpに代入する。
        a = *p;//ポインタpの値をaに代入する。

☆9.C++とは?(1.カプセル化 2.多態性 3.継承)
	  C++とはCの拡張型です。C++はCのすべてを含み,さらに
        オブジェクト指向プログラミングをサポートしています。
        オブジェクト指向プログラミングには3つの特色があります。
        「カプセル化」,「多態性」,「継承」です。
        カプセル化とは
        カプセル化とはコードとそのコードが操作するデータとを一体化して,
        外部からの干渉や誤用が無いように保護する事です。オブジェクト指向言語では,
        コードとデータが自己包含型の「ブラックボックス」を生成する事で,一体化が成立します。
        ブラックボックス内には,必要なすべてのデータとコードが存在してます。
        コードとデータがこのような方法で結び付けられると,オブジェクトが生成されます。
        オブジェクトはカプセル化をサポートする機構なのです。
        オブジェクト内では,コード,データ,またはその両方が,該当するオブジェクトの中で
        パブリック(公開)またはプライベート(非公開)になることが出来ます。
        プライベートなコードやデータは,そのオブジェクト内部からしか認識する事も,
        アクセスする事も出来ません。形式上は,オブジェクト内部のパブリック部分がプライベート
        部分の入出力制御を担っている事になります。
        多態性とは
        多態性とはデータ型の違う変数や関数を宣言できる機能のことです。
        Cでは絶対値を求める関数を作ろうとすれば変数,倍長型変数,浮動小数点とあると
        3つの別名関数で宣言しなければいけませんでしたが,C++では
        同じ名前で引数の違う関数ですみます。
        Cの場合 C++の場合
        int abs_i(int a); -> int abs(int a);
         float abs_f(float a); -> float abs(float a);
        double abs_d(double a); -> double abs(double a);ですみます。
        この事により覚える関数が少なくてすみわかりやすくなります。
        一般には"オーバーロード"と呼ばれます。
        継承とは        継承とは,オブジェクトが他のオブジェクトの特性を獲得する作用です。
        (例)生物━┳━植物━━━いろいろな植物などへ
              ┗━動物━┳━草食
                   ┗━肉食
        この例では,生物というおおもとのクラスから派生された植物と動物のクラスの
        動物から派生された草食と肉食を現しています。
        関数の性質を残した(自分で指定出来る)新しい関数を宣言する事が出来る。
        わかりやすく言うと,骨を用意し,後で肉をつけていくと言う感じのプログラムが組める。
        面白い特性として,このような継承も出来ます。
        (例)芋 ━┳━ポマト
          トマト━┛
        必要な部分だけを継承し,足らん部分を他のとこから継承する。

☆10.構造化プログラミングとは?
	構造化プログラミングとは,構造体を効率よく使い,機能ごと(サブグループ)に
        分割しプログラムを組むことをいいます。
        中規模,大規模プログラミングにむいてます。

☆11.オブジェクト指向プログラミングとは?
	オブジェクト指向プログラミングとは,プログラムを関連するいくつかの
        サブグループに分解し,各サブグループは自己包含型のオブジェクトになっており
        該当するオブジェクトに関連する命令とデータで構成されています。これにより
        複雑さは減少し,プログラマはより大きな規模のプログラムを処理出来るようになります。
        *オブジェクトとは,機能(要するに関数)を含んだ構造体である。

☆12.プロジェクトファイルとは?
	プロジェクトファイルとは複数のソースをまとめて一つのプログラムに
        するときに,どのソースをあわせるかを管理するファイルの事を言います。

☆13.クラスについて
	クラスとは"構造体に関数を入れて宣言(メンバ関数)する方式"の事を言います。
        わかりやすく言うと構造体の拡張版といった感じでしょう。
        一般にはクラスの宣言には"class"を使いますが,C++では従来の"struct"でも
        メンバ関数を使う事は出来ます。好みで使い分けてください(注)若干異なる部分があります。

☆14.ライブラリ,クラスライブラリとは?
	ライブラリとは,関数のいっぱい入ったファイルの事です。
        実際には,関数以外にも,構造体やマクロ定義も入っています。
        ライブラリを使うと,プログラムが楽に作れます。
        クラス化されたライブラリを「クラスライブラリ」と言います。
        クラスライブラリには,Microsoft社の「MFC」やBorland社の「OWL」などがあります。
        *MFC Microsoft Foundation Class(まいくろそふと ふぁんでいしょん くらす)の略
        *OWL Object Windows Library (おぶじぇくと うぃんどぅず らいぶらりぃ)の略

戻る

補足:

参考資料 新C言語入門 ソフトバンク社2400円
独習C++ 翔泳社 2800円

C言語の注意点など

*なりやすいエラーの原因のコーナー*

"{"があったら"}"も絶対あるはずである。
"("があったら")"も絶対あるはずである。
if文の中で等しい場合は"=="(2個)である。
命令の後には”セミコロン”が付く。
","と"."の打ち間違い。
";"と":"の打ち間違い。