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