gpt4 book ai didi

c++ - 为什么这个程序的输出在 C 和 C++ 之间不同?

转载 作者:IT老高 更新时间:2023-10-28 21:44:38 24 4
gpt4 key购买 nike

Possible Duplicate:
Size of character ('a') in C/C++

下面的程序

#include <stdio.h>

int main()
{
printf("%d\n", sizeof('\0'));
printf("%d\n", sizeof(0));
}

使用 gcc 输出编译

4
4

和 g++

1
4

为什么会这样?我知道这不是编译器的问题,而是 C 和 C++ 之间的区别,但原因是什么?

最佳答案

在 C 中,字符常量根据标准的 6.4.4.4(10) 具有 int 类型,

An integer character constant has type int. The value of an integer character constant containing a single character that maps to a single-byte execution character is the numerical value of the representation of the mapped character interpreted as an integer.

因此,您打印出 int 的大小两次。

在 C++ 中,字符常量的类型为 char

关于c++ - 为什么这个程序的输出在 C 和 C++ 之间不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11647309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com