問題① 次の中から、定数式でないものをすべて選んでください。num は int型の変数、f は戻り値が int型の関数、c は const修飾された int型の変数、X は #define X 10 と定義された記号定数とします。
定数式であるためには少なくとも、プログラムを実行しなくても、結果が分かる式でなければなりません。変数や関数呼び出しが含まれていると、その変数の値が何であるか、関数がどんな値を返すのかが分からなければ、式の結果を決めることができません。ソースコードを読めばわかると思うかもしれませんが、それは実質はプログラムを(脳内で)実行しているわけであって、実行せずに分かるとはいえません。
そのため、5 + num、f() * 2、c + 1 は定数式ではありません。const修飾された変数は定数として使いたいところですが、これはC言語のルールとして定数ではないことになっています。
X はオブジェクト形式マクロであり、10 という整数定数に名前を付けているだけなので、これは定数です。
Programming Place Plus のトップページへ
| はてなブックマーク に保存 | Facebook でシェア | X で ポスト/フォロー |
| LINE で送る | noteで書く |
|
| 管理者情報 | プライバシーポリシー |