这个式子为什么有错

来源:百度知道 编辑:UC知道 时间:2024/05/31 22:48:48
#include "stdio.h"
void main()
{
const char * str = "abc";
char *q = str;
//这一行为什么必须改成const char * q = str,str只是指向常量,但str是变量,为什么不能把他赋给另一个指针变量
str = "dd";
printf("%s",str); printf("%s",q);
}

无法将const char*转化为char*被。

解决方案:
现给q分配空间,用数组或者动态分配都可以。
然后strcpy(q,str);
至于为什么,那是因为要防止潜在的错误,而且指针和其它变量在使用上也是有区别的,指针具有传递性,而其它变量多半没有。

同样形式出现在声明与出现在语句里是不同的.形式逻辑不适用.
char *q = "abc"; 可以