C言語には大きく分けて1999年に改定されたバージョンと、それ以前のバージョンの二つがあります。1999年に改定されたバージョンは属に
本コーナーではC99以前のC言語を対象とし、C99独自の機能である場合はそれを明示することにします。
C言語のバイブルと言われる本(.)の最初に、.のような記述があります。というわけで、早速やってみましょう。
新しいプログラミング言語を学ぶ唯一の道は、それでプログラムを書いてみることである。最初に書くべきプログラムは、どんな言語でも同じで、例えば次のものである。
hello, world
という単語を印字せよ。
/*01*/ #include <stdio.h>
/*02*/
/*03*/ main()
/*04*/ {
/*05*/ printf("hello, world\n");
/*06*/
/*07*/ return 0;
/*08*/ }
コンパイル、実行できたでしょうか?正しく実行できていれば画面に「hello, world」と表示されたと思います。
まず、C言語の大原則ですが、プログラムは一行目から下へ順に実行されていきます (*1) 。
「/*」と「*/」で挟まれた部分は
コメントは命令の途中など、プログラム上意味ある場所以外ならば自由な場所に入れることができます.。また、「/*」と「*/」によるコメントは複数行にわたってもかまいません.。
#include <stdio.h>
ma/*間違ったコメント*/in()
{
printf("Hello, world.\n");/*正しいコメント*/
return 0;
}
#include <stdio.h>
main()
{/*ここから
printf("Hello, world.\n"); ここまでコメント*/
return 0;
}
[C99]コメントにはもう一種類あって「//」によるコメントはそこから行末までがコメントとして扱われます.。
#include <stdio.h>
main()
{
//printf("hello, world\n"); この行はすべてコメント
return 0;//「;」の後ろから行末までコメント
}
C言語は
/*list-1.1.1 の主要部分を一行に書き換えた例*/
#include <stdio.h>
main(){ printf("hello, world\n"); return 0; }
/*list-1.1.1 の誤ったフォーマットの例 1
有意味な場所で改行されている*/
#include <stdio.h>
main(){
pri
ntf("hello, world\n");
return 0;
}
/*list-1.1.1 の誤ったフォーマットの例 2
「#」で始まる行に*/
#include <stdio.h> main(){
printf("hello, world\n");
return 0;
}
とはいえ、あまり好き勝手に書いてしまうと見にくくなってしまうので、ある程度はお作法通りにした方が良いでしょう。この作法、ここでは説明しきれませんので、これから見ていくプログラムで徐々に慣れてください。
C言語ではプログラムの中心部分を
main(){ /*ここ*/ }
C言語では「;(セミコロン)」で区切られた部分ごとを
C言語の命令は演算、関数、制御文からなり、それぞれ大まかな意味は次のとおりです。
| 演算 | 加減乗除やメモリの操作などの基本的な計算。 |
| 関数 | 複数の演算を組み合わせて意味のあるひとつの機能にまとめたもの。 |
| 制御文 | プログラムの流れを制御するための文 |
標準ライブラリ関数を使うには準備が必要です。それが最初の行で書かれている
#include <stdio.h>
return のような制御文などの特別な意味を持つ語句を
| auto | break | case | char | const |
| continue | default | do | double | else |
| enum | extern | float | for | goto |
| if | int | long | register | return |
| short | signed | sizeof | static | struct |
| switch | typedef | union | unsigned | void |
| volatile | while |
ここで関数について簡単に説明しておきます。関数は
関数名(引数)
C言語にはいろいろな関数が用意されていますが、それぞれの用途によって、引数の数や戻り値の有無が異なってきます。printf などは、最低でもひとつの引数が必要ですが、必要に応じていくつ書いてもかまいません。関数が複数の引数を取る場合、
関数名(第1引数, 第2引数, 第3引数,・・・);
関数名( 第一引数, 第二引数, 第三引数)
C言語は1973年に
list-1.1.1 をまねて画面に
C言語は 楽しいぞ!
問題-1.1.1 をやったのち、一つ目の printf 関数をコメントで隠す(コメントアウトする)ことで「楽しいぞ!」とだけ表示されるようにしてください。
#include <stdio.h>
main()
{
printf("C言語は\n");
printf("楽しいぞ\n");
return 0;
}
#include <stdio.h>
main()
{
/*printf("C言語は\n"); */
printf("楽しいぞ\n");
return 0;
}