二级C 精品课程3-1-7:C 运算符之求字节数运算符
文章作者 100test 发表时间 2007:03:10 17:14:45
来源 100Test.Com百考试题网
计算机等级考试训练软件《百宝箱》
3.1.7求字节数运算符
C 提供了一个有用的运算符sizeof,它是一个单目运算符,用于计算表达式或数据类型的字节数,其运算结果与不同的编译器和机器相关。当编写用于进行文件输入/输出操作或给动态列表分配内存的程序时,用户将发现,如能知道程序给这些特定变量所分配内存的大小将会很方便。 例如3-1:
当我们进行算术运算时,如果运算结果超出变量所能表达的数据范围时,就会发生溢出。而利用sizeof运算符计算变量所占的字节数,也就是说,可以算出变量的数据范围,从而可以避免可能出现的错误。
|
例3-1 |
|
#include int main (void) { cout << "char size = " << sizeof(char) << " bytes\n". cout << "char* size = " << sizeof(char*) << " bytes\n". cout << "short size = " << sizeof(short) << " bytes\n". cout << "int size = " << sizeof(int) << " bytes\n". cout << "long size = " << sizeof(long) << " bytes\n". cout << "float size = " << sizeof(float) << " bytes\n". cout << "double size = " << sizeof(double) << " bytes\n". cout << "1.55 size = " << sizeof(1.55) << " bytes\n". cout << "1.55L size = " << sizeof(1.55L) << " bytes\n". cout << "HELLO size = " << sizeof("HELLO") << " bytes\n". } 我们运行这个程序,产生下面的结果(在作者的PC机上): char size = 1 bytes char* size = 2 bytes short size = 2 bytes int size = 2 bytes long size = 4 bytes float size = 4 bytes double size = 8 bytes 1.55 size = 8 bytes 1.55L size = 10 bytes HELLO size = 6 bytes |
|
|
|
表3-10 |
|
类型 |
运算 |
运算符 |
求字节数运算符 |
求字节大小 |
sizeof | |
|
下表给出了常用数据类型的字节数。具体的例子可参考书中给出的例子。当我们进行算术运算时,如果运算结果超出变量所能表达的数据范围时,就会发生溢出。如果我们能够利用sizeof运算符计算变量所占的字节数,就可算出变量的数据范围,从而可以避免可能出现的错误。
下表给出了常用数据类型的字节数。具体的例子可参考书中给出的例子。
|
|
表3-11 |
|
数据类型 |
占用字节数 |
Char |
1 |
Char * |
4 |
Short |
2 |
Int |
4(VC 6.0)2 (VC 1.5x) |
Long |
4 |
Float |
4 |
Double |
8 | |