みんな分かるC言語入門の2回目はC言語の「基礎の知識」についてご説明します。
本記事の内容
・C言語の基礎の知識(ソースコードの基本、関数、コメントなど)
C言語歴15年の著者が解説します。
C言語の学習の基礎となる部分となるので、必ず押さえておきましょう!
目次
コンパイル
プログラムを実行できる状態にする変換作業を「コンパイル」と言います。
本来、機械が理解できるのは01100101…など0と1の数字の組み合わせである2進数の数値だけです。
この0と1の組み合わせで、いろんな制御をします。
CDの音楽データや、DVDの映像データなどあらゆる電子データは0と1の組み合わせです。
もともと機械が理解できるのが0か1(機械語)なので、プログラムをこの機械語に翻訳する必要があります。
この翻訳がコンパイルです。
printf("Hello, World!");
01101000101010…
このようなイメージになります。
C言語は人間に理解できる言語なので高級言語と言ったりします。
反対に機械語は低級言語と言います。
C言語で書いたプログラムを実行するためにはコンパイルが必要であると覚えておきましょう。
C言語の基礎の知識
ソースコードの基本
まずはソースコードの基本的なルールを説明します。
- #include <stdio.h> /* 大文字と小文字を間違えないようにしましょう */
- main()
- {
- /* 空白やタブはプログラムに影響なし */
- printf("Hello, World!"); /* 1文字でも間違えないようにしましょう */
- }
・大文字と小文字は間違えないようにする
・空白(スペース、タブ、改行)はプログラムに影響与えない
・1文字でもタイプミスがあれば動作しなくなるので注意しましょう
C言語で使われる記号
C言語で使われる記号はこちらの通りです。
学習しているうちに記号について分からなくなる事があると思いますが、その時はこの表を確認するようにしましょう。
記号 | 読み方 |
! | エクスクラメーションマーク |
” | ダブルクォーテーション |
’ | シングルクォーテーション |
# | シャープ |
% | パーセント |
& | アンパサンド(アンド) |
[] | 大かっこ |
{} | 中かっこ |
() | かっこ |
* | アスタリスク |
+ | プラス |
- | マイナス |
, | カンマ |
. | ピリオド |
/ | スラッシュ |
: | コロン |
; | セミコロン |
< | 不等号(大なり) |
> | 不等号(小なり) |
= | イコール |
? | クエスチョンマーク |
¥ | 円マーク |
\ | バックスラッシュ |
^ | ハット |
_ | アンダーバー |
| | バーティカルバー |
~ | チルダ |
キーボードに"\"がない場合はバックスラッシュを使います。意味は同じです。
セミコロンとコロンや、シングル/ダブルクオーテーションの間違いに気をつけましょう。
main関数
C言語のプログラムはmain関数を実行するものなので、mainが抜けていると動作しません。
C言語はmain関数を動作させるためのプログラムと覚えておきましょう。
main関数からプログラムが開始され、main関数が終わるとプログラムが終わります。
- #include <stdio.h>
- main()
- {
- /*この中かっこ内にプログラムを記述する*/
- }
※本来、1行目は「int main(void)」と定義が必要ですが、警告メッセージが出るだけでプログラムには問題がないのでmainとします。
コメント
/*と*/で囲まれた文字についてはプログラムの動作に影響を与えません。
もちろん日本語もOKです。
これをコメントと言います。
共同でプログラミングすることも考えて、コメントは自分が分かるようにするだけでなく、他の人にも理解できるような言葉を使うようにしましょう。
下記の通りコメントが複数行にまたがっていても問題ありません。
また、1行のみコメントを入れたい場合は「//」を使う事ができます。(ただし、あまり推奨されていません)
- /*このように複数行に
- わたっても
- 問題ありません*/
- //これは1行だけのコメントですが、あまり使いません
コメントで注意すべきことは、/*〜*/の中に、/*と*/を入れないようにすると言うことです。(入れ子のコメントは禁止と言うことです)
- /* ダメな例です/* コメントの入れ子は禁止されています */ */
- /* //これもダメです */
関数と戻り値
次は関数と戻り値の基本について説明します。
- #include <stdio.h>
- main()
- {
- printf("Hello, World!");
- }
上記プログラムの5行目はprintfという関数を呼ぶという命令です。
printf関数もmain関数と同様に小さなプログラムのようなものです。
また、関数は値を返すことができます。これを関数の戻り値といいます。
数学で習った「y = f(x)」も関数fに引数 x を渡し、演算結果を y に渡しますが、これと同様と考えてください。
- y = function (x);
上記はfunction関数に引数xを渡し、function関数の戻り値をyに代入すると言うことになります。
x:りんご
function関数:ミキサー
function関数の戻り値:りんごジュース
y:コップ
最初は理解しづらいと思いますが、今はこれくらいのイメージでOKです。
関数と戻り値については別ページで説明します。
行末にセミコロン
行の終わりには必ずセミコロン(;)をつけるようにします。
ただ、注意しないといけないのは必ず行末に入れるのではなく、ひとつの文の終わりに入れます。
- printf(
- "Hello, World!"
- );
上記の場合はprintf関数の文の終わりだけセミコロンを入れます。
C言語の改行については空白と同じ扱いですので、プログラムの動作に何も影響しません。
文字列
- printf("Hello, World!");
文字列についてはダブルクォーテーションで囲います。
C言語の文字は”文字データ”か”文字列データ”で表現します。
詳細は別途説明するので、今はそれだけ覚えておけばOKです。
宣言
C言語ではプログラムにつかう識別子(変数、型、関数など)は事前に「使いますよ」という宣言が必要になります。
- #include <stdio.h>
- main()
- {
- /* 世界最小のプログラム */
- printf("Hello, World!");
- }
1行目が「printf関数をつかいますよ」という宣言になります。
stdio.hでprintf関数などのライブラリ関数が宣言されているので、#includeにてそれを呼び出しています。
#includeにてファイルを呼び出すことをインクルードと言い、〜.hはインクルードファイルやヘッダファイルと言います。
ここではstdio.hをインクルードしていますが、他にも事前に用意されているヘッダファイルは存在します。
また、自分でヘッダファイルを作ることも可能です。
変数
C言語の変数は値をいれておく入れ物として覚えておいてください。
データを保存したり、計算に使ったりといろんな用途で使います。
- i = 1 + 2;
1 + 2 の結果を変数 i に代入しています。1と2は変数ではなく定数になります。
制御文
プログラムの途中で分岐させたり、流れを繰り返したりすることができる構文を制御文(制御構文とも言います)といいます。この仕組みを制御構造といいます。
- if ( x > 0 ) {
- /* 条件 x > 0 が成立したらここに入る */
- }
- while ( x > 0 ) {
- /* 条件 x > 0 が成立している間、この中の処理を繰り返す */
- }
上記のif文やwhile文が代表的な制御文です。
if文とwhile文の詳細は別ページで説明しますので、ここではさまざまなこのような制御文でプログラミングをしていくとだけ覚えておいてください。
ライブラリ関数
これまで何度も、printf関数とお伝えしていましたが、
C言語ではprintf関数をはじめとするさまざまな関数が事前に用意されています。
(”宣言”の項目でお伝えした通り、printf関数を使う場合は「#include <stdio.h>」を記述しましょう)
関数を組み合わせてプログラミングしていきます。(関数は自分で作成できます)
あらかじめ用意されている関数をライブラリ関数と言います。
コラム:C言語の基礎の知識について
基礎知識といっても結構覚える事が多かったですね。
最初は「???」ばかりかもしれませんが、自分で数回プログラムを組めば本記事の内容であればすぐに習得できるはずです。
何度も失敗と修正を繰り返して基礎を固めていきましょう!