sizeof很简单,但是却很容易令人踩坑。
正文
先来看这样一段代码
int main()
{
int i=2;
printf("%dn",sizeof(i++));
printf("%dn",i);
return 0;
}
非常简单的一段代码
当时我认为答案应该是
4
3
可是结果却是出乎我的意料了

这是为什么呢?
下面来仔细说一下


通过调试观察虽然确实有i++这么一句代码,但是却没有实现。说到这里很多人可能犯了和我一样的错误,认为sizeof是一个函数。
其实并非如此,sizeof其实是单目操作符的一种,可以求变量类型所占用的空间,单位是字节。
说到这里就应该和strlen函数区分开,strlen函数求的是字符串的字符数,不包括’
