为什么'sizeof'运算符返回一个字符的值4?

时间:2019-06-11 04:17:13

标签: c sizeof

我编译了以下代码,并得到以下结果。它输入三种不同类型的变量:字符,字符串和整数。 “ sizeof”操作符在每个操作符上进行操作。我希望结果是:1 2 4,但实际结果是4 24。我正在使用Ubuntu 18.04 LTS Terminal。请向我解释其背后的原因。

这是我的观点,如果我在某个地方错了,请纠正我:

  1. '3'是一个字符,因此sizeof应该返回1。
  2. “ 3”是两个字符的字符串:“ 3”和“ \ 0”。因此sizeof应该返回(1 + 1)= 2。
  3. 3是整数,因此sizeof应该返回4或2,具体取决于编译器。 (请同时说明UBUNTU终端是否应返回2或4。我的系统是64位。)

我的代码:

#include <stdio.h>
int main()
{
    printf("%d %d %d\n",sizeof('3'),sizeof("3"),sizeof(3));
    return 0;
}

Expeced Result - 1 2 4
Actual Result - 4 2 4

0 个答案:

没有答案
相关问题