怎样明确常量的类型
在C语言中,不仅变量有数据类型,常量也有类型。为什么要把常量分为不同的类型呢?
在程序中出现的常量是要存放在计算机的存储单元中的。这就必须分配给它多少字节,按什么方式存储。例如,程序中有整数12,在Visual C++中会分配给它4个字节,按补码方式存储。
确定常量的类型
字符常量
只要看到由单撇号括起来的单个字符或转义字符就可以知道他是字符常量。
整型常量
不带小数点的数值是整型常量,但应注意其有效范围。如:在Turbo C中,系统为整型数据分配两个字节,其值为-32768--32767,如果在程序中出现数值常量23456,系统把他作为int型处理,用两个字节存放,如果出现49857(超过32767),系统把它作为长整型(long int )处理,分配4个字节。此外,在Visual C++中int型被分配4个字节范围为-2147 483 648--2147 483 647,在这范围之外,而又在 long long 型数的范围内的整数,作为 long long 型处理。设置 long long型常量的时候数值的结尾需要跟上大写字母LL或者小写字母ll,表示该数值为long long型常量。在一个整数的末尾加上大写字母L或者小写字母l,表示它是长整型(long int),但在Visual C++中由于对int和long int 型数据都分配4个字节,因此没有必要用long int 型,废物型属于是。
*1)int型数据末尾什么都不带
2)long int 型数据末尾带“L”或“l”
3)long long 型数据末尾带“LL”或“ll”*
浮点型常量
如果有
float a = 3.14159;
在进行编译时,对float变量分配4个字节,但对于浮点型常量3.14159,则按双精度处理,分配8个字节。编译系统会发出“ warning : truncation from ' const double ' to 'float ' ”。意为 :“把一个双精度常量转换为 float 型 ”,提醒用户这种转换可能会损失精度。float 型常量需要在末尾加一个大写字母 F 或者小写字母 f 。如果在实型常量末尾加大写字母 L ,则指定此常量为long double 型。
*1)float型末尾带“ F”或“f”
2)double型末尾什么都不带
3)long double型末尾带“L”或“l”*
C程序中无后缀的实型常量都默认为双精度浮点型常量
C程序中无后缀的整型常量都默认为整型(int)常量。