怎么不能通过指针赋值
来源:百度知道 编辑:UC知道 时间:2024/06/25 00:23:11
char *s1="BD";
*s1='a';
为什么会错
*s1='a';
为什么会错
s1是个指针占4个字节的一个地址而已,本身不能存储数据,是存储一段内存的地址的。所以赋值的时候必须保证它是一段有效内存的地址,也就是必须申请一段内存空间。
char *P="HELLO";
在VC编译后,相当于
const char *p = "HELLO";
所以*p这里相当于一个常量,是不能被修改的,你的s1是一样的道理
这是一个字符串常量
值不能改变