您的位置:首页 > 编程语言 > C语言/C++

C++中sizeof的一个特性

2018-03-06 12:55 225 查看
#include <iostream>
using namespace std;

int main()
{
int a = 1;
cout << sizeof(a = 3) << endl;
cout << a << endl;

return 0;
}


输出为4,1,而不是4,3

由输出可以知道,a 的值未被改变,也就是a = 3并未被执行。

原因就在于,C++中的sizeof()是一个宏,在编译阶段处理。由于sizeof不能被翻译成机器码,所以sizeof的作用范围内,也就是()里面的表达式不能被编译,而是被替换为类型,赋值操作符(=)返回左操作数的类型,所以 a=3在sizeof()看来就相当于int。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐