はじめに
C言語を少しかじった方や他言語(PHPなど)は大体できるけどC言語ってめんどくさそうだと感じている方に向けてできるだけ手を抜いてC言語を学習というかさらっと流してもらおうというのを目的としています。
データ型
変数の命名規則とかは適当に流すとして、データ型の種類などは一通り見ておきましょう。
整数型
short | 2bytes |
int | 4bytes |
long | 4bytes |
浮動小数点型
float | 4bytes |
double | 8bytes |
文字型
char | 1byte |
こういうデータ型があるんだなーと確認すれば良いです。intは通常4バイトのことが多いですが、処理系(開発環境、コンパイラ)によっては4バイトでない場合があります。データ型ごとに扱える数値の範囲とかありますが、あんなものは必要になったら(ほとんど必要になりませんが)ググれば良いのです。知っていたところで誰も見向きもしませんw
演算子
演算 | 演算子 | 例 | 意味 |
加算 | + | x + y | xとyを足す |
減算 | - | x – y | xからyを引く |
乗算 | * | x * y | xとyをかける |
除算 | / | x / y | xをyで割る |
剰余算 | % | x % y | xをyで割った余り |
これもまあ、ながめて終了。わりと%が使えたりする場面があります。
標準入力と標準出力
scanf関数でキーボードから打ち込んだ値は標準入力という領域に入りますよー。printf関数で出力される文字は標準出力という領域に書き込まれて表示されますよー。ってカンジで良いかと。
printf関数とscanf関数の使い方だけ押さえればとりあえず良いかと。ちなみにscanfは実際の業務ではほとんど使いませんのでprintf関数の%dとか%fを使った出力方法を確認しておきましょう。
関数
関数の書き方と、呼び出し方だけ確認。関数内で引数の値を直接変更できないことは認識しておくと良いでしょう。ポインタってのを使うと書き換え可能ですがこれはもっと後の話。
制御文
いわゆるif文、for文、while文、switch文です。暗記する必要はないです。必要になったらググれば良いです。breakとcontinueの動作ぐらいはおさえておけば良いかと。
変数スコープ
ローカル変数とグローバル変数の違いを押さえれば良いです。グローバル変数はあまり使わないかと。
配列
さて、この辺から少しだけきちんと理解することが必要になります。配列の要素番号は0から始まります。
配列への値のセットの方法など理解しておきましょう。一次元配列は簡単ですが、二次元配列は頭が混乱するので
a[0][1] = 1;
a[0][2] = 2;
・・・
のように具体的に値をセットしてprintf関数で表示してみたりして自分の頭の中で配列のイメージ作りができることが大切です。
int a[2][3];と宣言されたら
a[0][0]
a[0][1]
a[0][2]
a[1][0]
a[1][1]
a[1][2]
という変数があるんだなと頭でイメージできれば良いと思います。
char型配列による文字列の扱い方
C言語ではchar型の配列を使用して文字列を扱います。(String型みたいな便利なデータ型はありません)strcpy関数などの文字列処理専用の関数の使い方をおさえましょう。文字列は”(ダブルクォーテーション)で囲まれることも認識しておきましょう。実際、文字列をきちんと扱うにはポインタを理解してからが本当の勝負(?)になるでしょう。まずは配列を文字列の入れ物として理解しておきます。
ポインタ
ここがC言語ならではの言語文法でしょうか。ここでつまずく方もかなり多いです。ポインタ変数を表す*と、ポインタ変数に値をセットする時の*が異なるということを認識します。
(これに関してはこちらの記事を読んで頂くと良いと思います)
ポインタ変数の扱いはprintf関数などを駆使して中身を実際に覗いてみたりすることが理解の助けになったりします。つまづくポイントが人それぞれ違っていたりするのでなかなか難しいですが、手を動かすことが理解を早めることになります。
「こうすればこうなるのはわかったけど、こういう記述をしたらどうなるのかな?」という場合に自分でコードを記述して確認する作業を繰り返すと良いです。
構造体
構造体は宣言の構文を押さえておけば良いかと。どちらかというと、構造体の中に構造体メンバを持たせたり、構造体のポインタなどが絡んできた場合にきちんと理解できるのかが重要かと。構造体自体は難しい概念ではないです。
ファイル入出力
こちらはお決まりの関数を使用したやり方があるのでそれをおさえれば良いです。忘れたらググれば良いです。
プリプロセッサ
#を使ったマクロなどですが、こういうのがあるのかと確認すれば良いです。忘れたら使いたくなったときに再度確認すれば良いです。
まとめ
今やC言語を解説しているサイトはたくさんあるので、詳しくはそちらの各サイトに譲ります。ただ、最初から根を詰めてやり過ぎるとすぐに挫折するので適度に手を抜いて学習するほうが長続きしたりします。プログラミングは何でもそうですが、忘れては、調べての繰り返しの中で自然と覚えていくので暗記しようとしたりしないほうが効率的です。だらーっと浅い理解から、少しづつ深い理解につながっていきますので諦めなければ大丈夫だと思います。ネットという便利なツールがあるので全部覚える必要は全くないですしね。