定数 解答ページ | Programming Place Plus C言語編 第10章

トップページC言語編第10章

問題①

問題① 次の中から、定数式でないものをすべて選んでください。num は int型の変数、f は戻り値が int型の関数、c は const修飾された int型の変数、X は #define X 10 と定義された記号定数とします。


定数式であるためには少なくとも、プログラムを実行しなくても、結果が分かる式でなければなりません。変数や関数呼び出しが含まれていると、その変数の値が何であるか、関数がどんな値を返すのかが分からなければ、式の結果を決めることができません。ソースコードを読めばわかると思うかもしれませんが、それは実質はプログラムを(脳内で)実行しているわけであって、実行せずに分かるとはいえません。

そのため、5 + numf() * 2c + 1 は定数式ではありません。const修飾された変数は定数として使いたいところですが、これはC言語のルールとして定数ではないことになっています。

X はオブジェクト形式マクロであり、10 という整数定数に名前を付けているだけなので、これは定数です。


参考リンク


更新履歴



第10章のメインページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る