【问题标题】:sizeof('z') result unexpected [duplicate]sizeof('z') 结果意外[重复]
【发布时间】:2011-09-04 01:27:45
【问题描述】:

可能重复:
Size of character ('a') in C/C++

为什么这个程序输出的是 4 而不是 1?

void main()
{
   printf("%d",int(sizeof('z')));
}

'z' 是一个字符,sizeof('z') 必须打印 1?

【问题讨论】:

  • 提示:char ch = 'z'; printf("%d", sizeof ch);
  • @tjm 我认为是——很好的发现。 (并投票)。
  • 关于 SO 搜索工具的无用性我知道我对此有一个高代表答案,但仍然找不到它,这说明了什么!
  • 事实上,欺骗的答案是我!但是我没找到。
  • @Neil,我不知道 SO 搜索,但如果你用谷歌搜索“c sizeof character”,它确实会作为第一个结果出现

标签: c sizeof


【解决方案1】:

'z' 是字符文字,而在 C 中,字符文字的类型为 int。所以sizeof('z') 等于sizeof(int) 在你的实现中。

【讨论】:

    【解决方案2】:

    Sizeof char.

    也许令人惊讶的是,角色 C 中的常量是 int 类型的,所以 sizeof('a')sizeof(int)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 2021-06-10
      • 2016-07-07
      • 2017-10-04
      • 2014-12-01
      相关资源
      最近更新 更多