C++ 尝试静态_cast时出错<&燃气轮机;常量字符[]到无符号字符*
我想将C++ 尝试静态_cast时出错<&燃气轮机;常量字符[]到无符号字符*,c++,arrays,string,casting,C++,Arrays,String,Casting,我想将常量字符[]转换为无符号字符* 我使用C++的case:(I: StistaCase< /COD>): 我没有得到任何编译错误,程序运行良好 我必须使用C++强制转换来避免运行时错误。我如何将 const char(3)< /C> >使用C++强制转换> < /p> < p> 未签名CHAR*< /C> >和 const char []/Case>是无关的类型,从而代码> StistaCase< /Cord>将不起作用。并且常数不同,因此需要const\u cast 正确的演员阵容: un
常量字符[]
转换为无符号字符*
我使用C++的case:(I:<代码> StistaCase< /COD>):
我没有得到任何编译错误,程序运行良好<>我必须使用C++强制转换来避免运行时错误。我如何将<代码> const char(3)< /C> >使用C++强制转换> < /p> < p> <代码>未签名CHAR*< /C> >和<代码> const char []/Case>是无关的类型,从而<>代码> StistaCase< /Cord>将不起作用。并且常数不同,因此需要
const\u cast
正确的演员阵容:
unsigned char* txt = reinterpret_cast<unsigned char*>(const_cast<char*>("AC"));
unsigned char*txt=reinterpret_cast(const_cast(“AC”));
请注意,不能通过该<代码>未签名CHAR*TXT< /COD>指针写入,因为C++字符串文字(“AC”)是不可变的,通常存储在只读存储器中。p> 见:
通过非常量访问路径修改常量对象并通过非易失性glvalue引用易失性对象会导致未定义的行为unsigned char*
和const char[]
是不相关的类型,因此static\u cast
无法工作。并且常数不同,因此需要const\u cast
正确的演员阵容:
unsigned char* txt = reinterpret_cast<unsigned char*>(const_cast<char*>("AC"));
unsigned char*txt=reinterpret_cast(const_cast(“AC”));
请注意,不能通过该<代码>未签名CHAR*TXT< /COD>指针写入,因为C++字符串文字(“AC”)是不可变的,通常存储在只读存储器中。p> 见:
通过非常量访问路径修改常量对象并通过非易失性glvalue引用易失性对象会导致未定义的行为为什么要强制转换为非常量?即使在C中,从
const char*
强制转换为char*
最终也会导致未定义的行为。避免这样做。“我必须使用C++强制转换来避免任何运行时错误”——例如,为什么你想从“代码> const char */COD>强制转换为<代码> char */COD>?即使在C中最终也会导致未定义的行为。避免这样做。“我必须使用C++强制转换来避免任何运行时错误”。例如,我只使用<代码> TXT < /C>比较,所以我不需要修改它。谢谢@LayayasMaWy…但是注意,一旦你使用了“代码> RealTytCase和txt
应该是无符号字符*
或常量无符号字符*
?@LoayAshmawy无符号字符常量*txt=重新解释强制转换(“AC”)
我只使用txt
进行比较,所以我不需要修改它。谢谢@LayayasMaWy…但是注意,一旦你使用了“代码> RealTytCase和txt
应该是无符号字符*
或常量无符号字符*
?@LoayAshmawy无符号字符常量*txt=重新解释强制转换(“AC”)代码>
unsigned char* txt = reinterpret_cast<unsigned char*>(const_cast<char*>("AC"));