c++ - C/C++ 中字符的大小 ('a' )

标签 c++ c types

C 和 C++ 中字符的大小是多少?据我所知,在 C 和 C++ 中,char 的大小都是 1 个字节。

In C:

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

In C++:

#include <iostream>
int main()
{
    std::cout << "Size of char : " << sizeof(char) << "\n";
    return 0;
}

毫不奇怪,它们都给出了输出:Size of char : 1

现在我们知道字符表示为'a','b','c','|' ,...所以我只是将上面的代码修改为:

在 C 中:

#include <stdio.h>
int main()
{
    char a = 'a';
    printf("Size of char : %d\n", sizeof(a));
    printf("Size of char : %d\n", sizeof('a'));
    return 0;
}

Output:

Size of char : 1
Size of char : 4

在 C++ 中:

#include <iostream>
int main()
{
    char a = 'a';
    std::cout << "Size of char : " << sizeof(a) << "\n";
    std::cout << "Size of char : " << sizeof('a') << "\n";
    return 0;
}

Output:

Size of char : 1
Size of char : 1

为什么 sizeof('a') 在 C 和 C++ 中返回不同的值?

最佳答案

在 C 中,字符常量 的类型如 'a' 实际上是一个 int,大小为 4(或其他一些实现相关的值)。在 C++ 中,类型为 char,大小为 1。这是两种语言之间许多细微差异之一。

关于c++ - C/C++ 中字符的大小 ('a' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49041180/

相关文章:

c++ - 如何调用一个函数,该函数的参数是指向结构指针数组的指针和未指定的大小

scala - 混合泛型类型

java - JsonPath - 读取 Java Long 类型

c++ - C++ 中 const 重载有什么用?

c++ - 如果客户端的互联网断开连接,客户端套接字不会关闭。如何在服务器中检测到此事件?

c - 如何将文本文件转换为字符串,但在 C 中包含 "\n"?

c - C 编程中出现的奇怪答案

C++, float 到整数类型转换

c++ - Cmake不会将汇编程序标志设置为armasm(对于WinCE)

c++ - 析构函数/释放内存的问题