【文件属性】:
文件名称:关于字符常量
文件大小:1KB
文件格式:TXT
更新时间:2022-04-19 09:38:50
资源
关于 sizeof 运算符
sizeof 运算符是用来测算某个值或者某个类型的数据所需占用的内存字节数的。
sizeof(int)
可以测得 int 类型的数据占用内存的字节数,结果为 4
sizeof(3 + 4)
可以测得表达式 3 + 4 的值占用内存的字节数
显然 3 + 4 得 7,
7 是整数
所以占 4 字节
sizeof(1 / 2.0)
1 是整数(4 字节),2.0 是实数(8 字节)
两个数据的类型不一致,是不能直接计算的
所以首先要将 1 由整型升级到实型 1.0(8 字节)
然后两个实数相除,1.0 / 2.0 得 0.5
0.5 是实数
所以占 8 字节内存
以上是我们的想法,
实际上由于 sizeof 只需要得到字节数
所以根本不去做计算!!!
sizeof(3 + 4)
显然:3 和 4 都是整数,3 + 4 的值一定是整数
所以占 4 字节
就是说:根据不需要计算 3 + 4
sizeof(1 / 2.0)
1 是整数,和实数 2.0 作除法,整数要升到实数
实数与实数相除,商一定是实数
所以占 8 字节
就是说:根据不需要计算 1 / 2.0
总之,sizeof(表达式),其中的表达式是不算的!!!
所以下面的程序
int a = 1, b = 2, c;
c = sizeof(++a * b++);
printf("%d %d\n", a, b);
输出:1 2
也就是说:
sizeof(++a * b++)
其中的 ++a * b++ 是根本不计算的
因此 a、b 的值不变!