test1-1b.cの内容を一文づつ解釈すると次のようになります(分かりやすくするために左端に行番号を表示してあります)。
1: /* My First Program */
2: #include <stdio.h>
3: void main(void){
4: printf("hello! 1\n");
5: printf("hello! 2");
6: printf("hello! 3\n");
7: }
1行目: 注釈行であり、コンパイラは無視します(第4章にて既出)。
2行目: printfをプログラム中で使うために必要な宣言。なぜこのような記述が必要なのか、今回はあえて述べません。おまじないのようなものだと思ってください。後日説明します。
3行目: main文。プログラムの中味はここからはじまります。C言語を使用してプログラミングを行う場合、必ずmain文が存在すると考えてください。そして、main文の中味は必ず{ }で括られます。すなわち、C言語のプログラムは必ず
#include <stdio.h>
・・(必要ならば他の#include等の記述を行う)・・
void main(void){
・・(プログラムの中味)・・
}
と記述されるものだという理解で、今のところは十分です。では、なぜvoid main(void)という記述が必要なのか、また、他の記述方法もあるのかどうか、今回はあえて述べません。これも先ほどの#include <stdio.h>同様、おまじないのようなものだと思ってください。後日説明します。
4行目: printf文。モニタ画面上に、""で括られた部分の指示に従って表示します。この場合hello! 1と表示し、さらに改行を行います。\nは改行を行えということを表しています。
5行目: printf文。4行目と同様に、モニタ画面上に、""で括られた部分の指示に従って表示します。この場合hello! 2と表示します。\nが無いのでここでは改行は行いません。
6行目: printf文。4行目と同様に、モニタ画面上に、""で括られた部分の指示に従って表示します。この場合hello! 3と表示し、さらに改行を行います。\nは改行を行えということを表しています。
7行目: main文で括られた中味が終了することを表しています。
この結果、画面上の表示は以下のようになるはずです。
hello! 1
hello! 2hello! 3
hello!1とhello!2の間で改行が行われ、hello! 2とhello! 3の間では改行が行われずに、連続して表示されることとなります。
例1:\nをすべて削除
4: printf("hello! 1");
5: printf("hello! 2");
6: printf("hello! 3");
例2: 行すべてに\n記述
4: printf("hello! 1\n");
5: printf("hello! 2\n");
6: printf("hello! 3\n");
例3: hello!の途中に\nを記述してみる
4: printf("hell\no! 1\n");
5: printf("he\nllo! 2");
6: printf("hello! 3\n");