gpt4 book ai didi

c++ - g++ 给出错误 : invalid initialization of reference of type ‘char&’ from expression of type ‘unsigned char’

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:02 25 4
gpt4 key购买 nike

当我尝试编译以下代码时

int main()
{
unsigned char uc;
char & rc = uc;
}

g++ 给出以下错误:从类型为“unsigned char”的表达式对类型为“char&”的引用的初始化无效。使用 signed char 而不是 unsigned char 时也会发生同样的情况。但是下面的编译很好

int main()
{
unsigned char uc;
const char & rc = uc;
}

为什么不能用“unsigned char”类型的变量初始化“char &”,而可以用它初始化“const char &”?

最佳答案

为什么不能用类型为“unsigned char”的变量初始化“char &”,而可以用它初始化“const char &”?

因为当 unsigned char 转换为 char 时,后者会创建一个临时绑定(bind)到 const 引用,这是非 const 引用无法做到的. charsigned charunsigned char 是三种不同的类型,如 C++11 § 3.9.1 中所述:

Plain char, signed char, and unsigned char are three distinct types

关于c++ - g++ 给出错误 : invalid initialization of reference of type ‘char&’ from expression of type ‘unsigned char’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17453738/

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