变量指针无法指向const字符串常量
char *str = "I am a chinese";
//这里编译器报错:const char*类型的值不能用于初始化char*类型的实体,加上const就不报错了,但是加上const后边就没法通过赋值的方式接续字符串了。 我的是.cpp文件
const char *res = "I love China";
char *address = str;
while (*str!='\0')
{
str++;
}
while (*res!='\0')
{
*(str++) = *res++;
}
str = address;
cout << str << endl;
29
收起
正在回答
3回答
其实,你这段代码的主要问题,并不是错在char *str = "I am a chinese";单独这个代码是可以编译通过的。代码执行的问题会出在*(str++) = *res++;报出内存异常。建议:可以先按照老师的拼接字符串的方式,感受一下拼接过程的原理。当然你也可以直接使用类库的方式,进行字符串的拼接。如下所示:
char* str1 = "Hello"; char*str2 = "World"; char str3[20]; strcpy(str3, str1); strcat(str3, str2); cout << str3 << endl;
注意在连接之前,都会拷贝一下,然后再进行拼接。
C++零基础入门 热门编程语言 二级考试必备
- 参与学习 529 人
- 提交作业 110 份
- 解答问题 594 个
无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星