为什么 sizeof() 方法给出不同的结果?

Why sizeof() method is giving different results?

当我运行下面的C程序时,我得到的输出结果是4

#include <stdio.h>

//using namespace std;

int main()
{
    printf("%d", sizeof('a')); 
  return 0; 
}

但是当我在 C++ 中 运行 下面的代码时,我得到的输出结果是 1

#include <iostream>

using namespace std;

int main()
{
    printf("%d", sizeof('a')); 
  return 0; 
}

您能解释一下为什么相同的代码会得到不同的输出吗,就好像 'a' 是我们在两种语言中定义字符的方式一样?

在 C 中,字符表示(如 'a')的类型为 int。所以,sizeof运算符returns一个整数的大小。

在C++中,它是字符类型。