我对C中的sizeof运算符感到困惑.
#include <stdio.h> int main(void) { char num1=1,num2=2,result; result = num1 + num2; printf("Size of result: %d \n",sizeof result); printf("Size of result: %d \n",sizeof(num1+num2)); }
结果分别为1和4.为什么会这样?
解决方法
结果是char类型,因此sizeof为1,而num1 num2提升为int类型,因此它给出4(int的大小).
请注意,当对小于int的类型执行算术运算时,所有值的值都可以用int表示,那么result将被提升为int类型.