The sizeof keyWord gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t.
int a = 0; cout<<sizeof(a=3)<<endl; cout<<a<<endl; 输出为什么是4,0而不是期望中的4,3???就在于sizeof在编译阶段处理的特性。由于sizeof不能被编译成机器码,所以sizeof作用范围内,也就是()里面的内容也不能被编译,而是被替换成类型。=操作符返回左操作数的类型,所以a=3相当于int,而代码也被替换为:
int a = 0; cout<<4<<endl; cout<<a<<endl; 所以,sizeof是不可能支持链式表达式的,这也是和一元操作符不一样的地方。