© 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: 補足資料を参照のこと。