以前对这个并没太在意,后来看到很多面试都会有这种题目
int i;
i = 32;
cout<<sizeof(i=33)<<endl;//8
cout<<i<<endl;
这种题目是非常常见的,i = 32;为什么呢??
根据C99规范, sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义。
cout<<sizeof(&i)<<endl;
结果:4
&是取地址符,地址符的大小是固定的
以前对这个并没太在意,后来看到很多面试都会有这种题目
int i;
i = 32;
cout<<sizeof(i=33)<<endl;//8
cout<<i<<endl;
这种题目是非常常见的,i = 32;为什么呢??
根据C99规范, sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义。
cout<<sizeof(&i)<<endl;
结果:4
&是取地址符,地址符的大小是固定的