#include<stdio.h>#include <string.h>int main(void){ char *c = "OPQ"; char *d = "rst"; strcat(c,d); printf("字符串的值是:%s\n",c); return 0;}
char *c = "OPQ";这样的写法是指指针c是指向"OPQ"这个字符串常量的(注意是常量)
strcat(c,d);这句又试图改变c指向的字符串(增加d指向的内容),这和c指向的是字符串常量是矛盾的,所以不允许.
修改的的话,只要改变c就行:
char c[100] = "OPQ";//这样的定义表示c是一个字符数组,并且数组初始化内容为"OPQ",那么它就是一个变量,而不是常量,下面改变值就能成功.