C ++中sizeof('x')的值和字符文字的类型是什么?

在C编程语言中,类型字符文字是int,因此sizeof('x')和sizeof(10)之间没有区别。因此,C语言将字符文字视为整数(字符的ASCII)。

让我们考虑以下示例

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

输出将为4,4(在32位系统架构上)

C ++中字符文字的类型

在C ++编程语言中,字符文字的类型从int更改为char。这意味着sizeof('x')和sizeof(10)是不同的。

让我们考虑以下示例

#include <iostream>
using namespace std;

int main(){
	cout<<sizeof('x')<<","<<sizeof(10)<<endl;
	return 0;
}
    1,4

输出将为1,4(在32位系统架构上)

有什么不同?

在C语言中,字符文字是整数类型,因此sizeof('x')将为4;在C ++语言中,字符文字是字符类型,因此sizeof('x')将为1。