【问题标题】:In C, why if(sizeof(int)>-1) gives false output? [duplicate]在 C 中,为什么 if(sizeof(int)>-1) 给出错误的输出? [复制]
【发布时间】:2016-11-12 19:08:58
【问题描述】:
if(sizeof(int)>-1)
{
printf("0");
}
else
{
printf("else");
}

它执行 else 语句。 为什么即使 int size>-1 也不跟随 if 部分。

【问题讨论】:

    标签: c if-statement sizeof


    【解决方案1】:

    sizoe(int) 产生一个size_t 类型的整数,它是无符号整数。由于 C 中的 usual arithmetic conversions-1 被转换为 size_t,因此,-1 变为 SIZE_MAX。显然sizeof(int) 小于SIZE_MAX 并且条件(if)为假。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 2016-04-13
      • 2011-03-07
      • 2018-03-05
      • 2016-06-28
      相关资源
      最近更新 更多