© 2005 Martin J. Dürst 青山学院大学
int は何バイト?long も 4バイト; Java は
int 4バイト; long 8バイトint で表現できる最大の値?int a = 3.5, b = 5.5;
printf("%d", a * b); の出力は?int は整数)if-else, switch,
while, for, do-while 文break, continue, return,
goto 文case, default;
goto の行き先); (semicolon)do-while の最後: 有if-else, switch,
while, for そのものにはないif の方が空で、else
の方だけ処理があるif/for/while
の () 内にあるif と else の組み合わせelse は可能な限り一番近い if との組み合わせになる。
次のプログラムは字下げ通りには動かない:
if (a > b)
if (a != 0)
z /= a;
else
z += b;
if 文の代わりになる式 (1)良くある一句:
if (m > n)
r = m;
else
r = n;
特に r がもう少し複雑な場合には次が有効:
r = (m > n) ? m : n;
if 文の代わりになる式 (2)|| や && で if
文のような物が作れる:
if (i >= 0)
print ("%d は正である。\n");
else
print ("%d は負である。\n");
の代わりに
i>=0 && printf("%d は正である。\n",i) || printf
("%d は負である。\n", i);
switch 文の fallthroughswitch (c) {
case '\n':
line++;
/* fallthrough */
case ' ': case '\t':
...
break;
...
}
for (i=0; i<aMax; i++)
for (j=0; j<bMax; j++)
if (a[i]==b[j])
goto found;
/* 見つけなかったときの処理 */
found:
/* 共通の処理 */
環境変数やプリプロセッサ変数の設定によってプログラムの一部になるかどうかを決める。
典型例: #include
ファイルの複数読み込みへの対応:
#ifndef _INC_STDIO
#define _INC_STDIO
/* stdio.h の内容 */
#endif
#ifndef _INC_STDIO は
#if !defined(_INC_STDIO) でも書ける。
A1: 必ずやる。制御方法と判断方法それそれ三つあるので三つの組み合わせを使う。
A2: 自信があればやらなくても良い。
C2: 補足資料を参照のこと。