【问题标题】:Why is "sizeof(double) > -1" false? [duplicate]为什么“sizeof(double) > -1”是假的? [复制]
【发布时间】:2021-03-16 12:26:36
【问题描述】:
int main()
{
    if(sizeof(double) > -1)
        printf("M");
    else
        printf("m");
    return 0;
}

我希望输出是 M,但它是 m。谁能解释一下输出的原因?

【问题讨论】:

标签: c output double sizeof


【解决方案1】:

那是因为sizeof返回一个size_t的值,即无符号整数类型,所以-1会溢出。

【讨论】:

  • sizeof(double) > -1 中,-1 被转换为size_t。这被定义为包装而不是溢出。
猜你喜欢
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-05
  • 2011-03-09
  • 2019-02-12
  • 2014-08-19
相关资源
最近更新 更多