C语言的sizeof运算符 运算符又称为取内存字节 运算符,属于C语言中十分特殊的运算符,它与那些符号运算符不同。它是一个一元运算符,用于计算操作对象在内存中所占的字节数。即byte,表示8个二进制位。
表达形式:1
sizeof(类型标识符) 或 sizeof(变量名)
C语言的程序和数据都是放在内存中的,不论是常量、变量还是复杂数据类型,都是按字节存储于系统存储区域中的。比如:char型变量在内存中占一个字节,int型变量在内存中占4个字节,短整型short在内存中占2字节,长整型long占4字节(以上所说均为32位计算机操作系统)。具体的请看下面的表格。
而我们如果想要获取这些数据类型在内存中所占的字节数,就可以使用运算符sizeof来获取。
e.g.1
2int a = 10,b=0;
b = sizeof(a);
sizeof运算符还可以用于计算数组、结构体、指针以及动态分配内存等额字节数,尤其是动态分配内存中,用的十分的普遍,而且再次也十分建议你在使用东陶分配内存时候,使用sizeof运算符来计算一下分配的内存字节数,便于你后续的管理。 使用sizeof运算符可以提高C语言程序的可移植性,以适应不同的系统平台。
下面写一个程序来分别获取char,short,int,long,float,double等常用基本数据类型的内存字节数。1
2
这里需要注意的是字符常量在系统中以ASCII码形式存放,因此使用sizeof运算符时候,系统将整型常量会解析为常量97,而整型常量在系统中占用4字节,因此输出为4.所以我们遇到 char类型的需要用强制转换符转换一下即可。sizeof((char)’a’),那样系统就会把’a’当作字符看待了,因此就输出为1 。
本文作者:冰羽
本文地址: https://bingyublog.com/2019/01/23/C语言的sizeof运算符/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!