anu*_*amD 13 c++ casting type-conversion
一个简单的C++代码:
int main(){
unsigned char* t="123";
}
Run Code Online (Sandbox Code Playgroud)
使用g ++进行编译时出现以下错误:
invalid conversion from ‘const char*’ to ‘unsigned char*’ [-fpermissive]
Run Code Online (Sandbox Code Playgroud)
为什么?
Vla*_*cow 25
在C++中,字符串文字具有常量字符数组的类型.例如,字符串文字"123"具有类型const char[4].
在极少数例外的表达式中,数组转换为指向其第一个元素的指针.
所以在这个宣言中
unsigned char* t="123";
Run Code Online (Sandbox Code Playgroud)
初始化程序有类型const char *.有没有隐式转换从const char *到unsigned char *
你可以写
const unsigned char* t = reinterpret_cast<const unsigned char *>( "123" );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42068 次 |
| 最近记录: |