大文字小文字を区別するよ。
英字で始まり英数字が続く=英数字が並ぶ文字列、ただし最初は英字。
if~elseの条件分岐で文が一つだけならなら中括弧はなくてもよい。しかし思わぬ失敗をしがちなので、書いておく方がよい。
#include <stdio.h> int main() { for (int i=0; 10>i ; i=i+1 ){ printf("こんにちは\n"); } return 0; }
これは許されていないのでエラーになる
~/c$ gcc k0501.c -o k0501 k0501.c: In function ‘main’: k0501.c:5: error: ‘for’ loop initial declarations are only allowed in C99 mode k0501.c:5: note: use option -std=c99 or -std=gnu99 to compile your code
でも、オプションにより許されるとあるので
~/c$ gcc k0501.c -o k0501 -std=c99 ~/c$ ./k0501 おはよう おはよう おはよう おはよう おはよう おはよう おはよう おはよう おはよう おはよう
int i = 100; for (int i=0; 10>i; i=i+1 ){ printf("おはよう%d\n",i); } printf ("%d\n",i);
~/c$ gcc k0501.c -o k0501 -std=c99 ~/c$ ./k0501 おはよう0 おはよう1 おはよう2 おはよう3 おはよう4 おはよう5 おはよう6 おはよう7 おはよう8 おはよう9 100
int i = 100; for ( i=0; 10>i; i=i+1 ){ printf("おはよう%d\n",i); } printf ("%d\n",i);
~/c$ gcc k0501.c -o k0501 -std=c99 (-std=c99を付けなくてもおなじ) ~/c$ ./k0501 おはよう0 おはよう1 おはよう2 おはよう3 おはよう4 おはよう5 おはよう6 おはよう7 おはよう8 おはよう9 10
int i = 100; int a = 100; for ( i=0; 10>i; i=i+1 ){ int a = i; printf("おはよう%d %d\n",i,a); } printf ("%d %d\n",i,a); return 0;
~/c$ gcc k0501.c -o k0501 -std=c99 (-std=c99を付けなくてもおなじ) ~/c$ ./k0501 おはよう0 0 おはよう1 1 おはよう2 2 おはよう3 3 おはよう4 4 おはよう5 5 おはよう6 6 おはよう7 7 おはよう8 8 おはよう9 9 10 100
int max = 3; float hen[max] = {12.1, 20 , 30.5};
2回同じ変数が宣言 k0509.c:7: error: redefinition of ‘max’ k0509.c:6: note: previous definition of ‘max’ was here int max = 3; float hen[max] = {12.1, 20 , 30.5}; k0509.c:7: error: variable-sized object may not be initialized int max = 3; float hen[max] ; hen[0]=12.1; hen[1]=20; hen[2]=30.5; ならok #include聖愛中学高等学校#define MAX 3 int main() { float hen[MAX] = { 12.1, 20, 30.5 }; int i; for ( i = 0 ; MAX>i ; i=i+1 ){ ならなおOK