为什么 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++中,它是字符类型。
当我运行下面的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++中,它是字符类型。