字符指针赋值的问题
来源:互联网 发布:通达信解禁日期提前知 编辑:程序博客网 时间:2024/06/05 09:36
定义unsigned char *s = "1234567"; 报错 无法从“const char [8]”转换为“unsigned char *”
字符串直接赋值是可以的啊
从报错提示,可以很明显看到"1234567"的数据类型是const char [8],当然可以弱化为const char*,
char* a = "123456";之所以可以,就相当于用常量赋值给(这里其实是初始化)一个变量,这显然是没有问题的,类似与:
const int a = 10;
int b = a;
没有问题一样。
short c = a;也是可以的,因为存在从int到short的隐式转换(当然有可能因为部分数据丢失而告警,但语法上是正确的)
char* 和unsigned char*之间不存在隐式转换,比如:
char* a = "hello";
const char* b = a;
就会报错。
所以以上的问题,从根本上而言和const没有直接关系。关键就是char* 和unsigned char*之间不存在隐式转换,如果存在,那么unsigned char *s = "1234567";就是正确的,反之,就是错误的。解决方法可以直接进行一个强制类型转换。(C编辑器一般不会出现这种问题,C++的编辑器会考虑数据安全的问题才会出现这样的情况。)
来源:CSDN论坛
阅读全文
0 0
- 字符指针赋值的问题
- C语言字符指针赋值的问题
- 指针的赋值问题
- 指针赋值的问题
- 指针赋值的问题
- 指针赋值的问题
- scanf能赋值字符数组,不能赋值给指针的问题
- 字符指针赋值
- 字符指针 赋值
- 字符指针的问题
- (2011.07.06)C++ 结构体中字符指针在main中使用new的赋值问题。
- 一个字符数组赋值的问题
- 简单的问题:char指针无法赋值
- 关于未指针数组赋值的问题
- 指针的传参数与赋值问题
- C语言指针的赋值问题
- 关于数组给指针赋值的问题
- 对空指针赋值的问题 指针的指针 指针的指针和指针数组
- fragment事物跳转
- MySQl优化-02
- Linux下查看文件内容的命令
- FreeMarker 的使用-网页
- 分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录
- 字符指针赋值的问题
- JavaScript易错知识点整理
- vim使用技巧
- NP
- 软件测试概述
- 救济金发放UVa133
- maven错误:dependency cannot have character [children]
- 【贪心+二分查找】Office Keys CodeForces
- CRON表达式基础