以前对这个并没太在意,后来看到很多面试都会有这种题目
int i;
i = 32;
cout<<sizeof(i=33)<<endl;//8
cout<<i<<endl;
这种题目是非常常见的,i = 32;为什么呢??
根据C99规范, sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义。
cout<<sizeof(&i)<<endl;
结果:4
&是取地址符,地址符的大小是固定的
本文探讨了C99规范中sizeof运算符的行为及其在表达式中的作用。通过具体的示例代码展示了sizeof运算符如何在编译时刻确定类型大小,并解释了为何在赋值表达式中它只关注类型而非变量的当前值。
以前对这个并没太在意,后来看到很多面试都会有这种题目
int i;
i = 32;
cout<<sizeof(i=33)<<endl;//8
cout<<i<<endl;
这种题目是非常常见的,i = 32;为什么呢??
根据C99规范, sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义。
cout<<sizeof(&i)<<endl;
结果:4
&是取地址符,地址符的大小是固定的
2117
1716

被折叠的 条评论
为什么被折叠?