关于C中sizeof运算符的困惑

我对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类型.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...