Linux講座にようこそ。このページは「C言語プログラミング入門 - 第12章.その他の型」です。
定数に付いては既に説明しましたが、ここでは更に詳しい説明を行います。
既に説明したものをまとめました。文字定数と文字列定数との相違については、特に注意して下さい。
区分 | 記述方法、その他 |
---|---|
文字定数 | 半角1文字をアポストロフィで括ります。(例:'a'や'1') |
文字列定数 | 複数の文字からなる文字列を引用符で括ります。(例:"hello"や"今日は") |
整数定数 | 八進数、十進数、十六進数の3種類が有ります。
|
浮動小数点定数 | 小数点を表すピリオドを付けて指定します。(例:0.05や3.14) |
制御文字(コントロールコード)も、文字定数として扱うことができます。(ASCIIコード表の0x00〜0x1Fと0x7Fの文字です。詳細は「付録1.ASCIIコード表」を参照してください)
数値を表す定数には整数と浮動小数点数の2種類が有りますが、それらの記述形式について説明します。
定数は指定された値により、適切な型のデータとしてメモリ上に確保されます。例えば、整数定数の場合はint型、浮動小数点定数の場合はdouble型として確保されます。通常は、これであまり問題は無いと思いますが、非常に大きな値を取扱いたいような時には問題が起きてきます。例えば、int型が4バイト長の場合、表現できる最大の値は2147483647(約21億)ですので、これより大きな値は初期値として指定できないということになります。対応策としては、unsigned int型であれば倍の値まで表現できますので、int型ではなくunsigned int型として確保すればよいことになります。
数値を表す定数の場合は、数値の後ろに接尾語(サフィックス)を指定することにより、型の指定を行えるようになっています。以下に接尾語を示します。
区分 | 接尾語 | 意味 |
---|---|---|
整数定数 | L または l | long int型として確保します。(例:2147483648L) |
LL または ll | long long int型として確保します。(例:2147483648LL) | |
U または u | unsigned型として確保します。上記LやLLと組み合わせることもできます。(例:2147483648U) | |
浮動小数点定数 | F または f | float型として確保します。(例:0.05F) |
L または l | long double型として確保します。(例:3.1415926535L) |
変数は値を設定したり、変更したりできますが、場合によっては変更を禁止したいことが有ります。この様な場合はconst型修飾子を指定します。これにより、一種の定数として取り扱うことになります。
const型修飾子を指定した変数に値を設定したい場合は、宣言時に初期値を指定することになります。初期値以外で、値を設定することは出来ませんし、++演算子等による値の更新も出来ません。(コンパイルエラーになります)
void func(const int Arg1, int Arg2); int main(void) { int arg1 = 0; int arg2 = 0; func(arg1, arg2); } void func(const int pArg1, int pArg2) { pArg1 = pArg1 + 10; ← pArg1はconst型修飾子を指定していますので、更新は出来ません pArg2 = pArg2 + 10; ← pArg2は更新可能です }