gpt4 book ai didi

c++ - 为什么这个 '1234' 的代码在 C++ 中编译?

转载 作者:IT老高 更新时间:2023-10-28 22:01:15 25 4
gpt4 key购买 nike

为什么会编译:

char ch = '1234'; //no error

但不能超过 4 个 chars :

char ch = '12345'; //error: Too many chars in constant

(是的,我知道 ' ' 用于一个 char"" 用于字符串;我只是在试验)

这是否与 char 使用 ASCII 数字表示这一事实有关?

最佳答案

C++ 有一种叫做“多字 rune 字”的东西。 '1234' 就是一个例子。它们具有 int 类型,并且由实现定义它们具有什么值以及它们可以包含多少个字符。

直接与字符表示为整数这一事实无关,但很有可能在您的实现中 '1234' 的值被定义为要么:

'1' + 256 * '2' + 256 * 256 * '3' + 256 * 256 * 256 * '4'

或:

'4' + 256 * '3' + 256 * 256 * '2' + 256 * 256 * 256 * '1'

关于c++ - 为什么这个 '1234' 的代码在 C++ 中编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19394141/

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