解析一个有关sizeof用法的题目--sizeof(i++)
解析一个有关sizeof用法的题目--sizeof(i++)
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:#includeintmain(){inti;i=10;printf("%dn",i);printf("%dn",size...

复制代码 代码如下:

#include <stdio.h>

int main()

{

int i;

i = 10;

printf("%dn", i);

printf("%dn", sizeof(i++));

printf("%dn", i);

return 0;

}

这三行输出应该是什么?

答案是:

10

4

10

第三个为什么不是11? i为什么没有自增?

请看C++标准;

5.3.3 sizeof

The sizeof operator yields the number of bytes in the object representation of its operand. The operand is either an expression, which is an unevaluated operand (Clause 5), or a parenthesized type-id.

也就是说,如果sizeof的操作数是一个表达式的话,这个表达式时不会被计算的。

sizeof当预处理看就行了,它后面括号里的东西,根本不求值,只根据C的一堆规则判断结果类型,然后返回结果类型的大小

另外一个操作符typeid也是如此。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类