一个简单的C相关问题
小弟初学C,在写程序时候有个关于指针的问题不太懂,代码如下
int main(void)
{
char * a;
a="12";
*a='3';
*(a+1)='4';
}
编译可以通过,但是运行会出现异常,第三步第四步执行有问题,不知道是什么原因。在线等。
[解决办法]
显然会有问题
a="12"
表示在只读内存中存放字符串"12"。并将首地址赋给a
第三第四步去修改只读内存的值,显然是错误的
[解决办法]
char * a;//定义字符指针
a="12";//将常量字符串"12"的首地址赋给该指针
*a='3';//试图通过字符指针修改常量内存,错误
*(a+1)='4';//试图通过字符指针修改常量内存,错误