读书人

[讨论] sizeof和其它函数的区别解

发布时间: 2012-03-31 13:13:26 作者: rapoo

[讨论] sizeof和其它函数的区别
用sizeof (i++)后,i的值不会变化,但其余的函数不论是自己定义的还是系统的printf之类都会变化,有人知道是为什么吗

[解决办法]
没听懂
[解决办法]
sizeof 不是函数啊
sizeof是操作符 又没有函数调用~
你说为什么呢?

sizeof (i++); 和 sizeof (int);等价啊 在你上面写的程序中可以替换
[解决办法]
sizeof不是一个函数,而是一个operator。他的合法操作数是一个data type,如果输入的是表达式也是要提取它的data type

最重要的事,sizeof的计算发生在编译时。运行时剩下的就只有一个代表结构大小的常数了。


这样就可以解释你的问题了。在编译时,i++的类型是int,所以sizeof(i++)被替换为sizeof(int) (32位系统中是4)而运行时根本不存在i++这个表达式了,所以不会对i进行自增操作。
[解决办法]
sizeof是操作符,
非函数
new之类类似也属于操作符

读书人网 >C++

热点推荐