C++

【C++】CONST CHAR*类型的值不能用于初始化CHAR*类型的实体

编程的时候写到语句:

char *pch2 = "string"

的时候遇到报错,“CONST CHAR类型的值不能用于初始化CHAR类型的实体”。


有人说是因为之前的vs版本可以写成char*是历史遗留原因,在vs2017中,程序可能就崩溃了,新版本VS对这个进行了更严格的控件。

可以先用字符数组存储,再给指针用了

额那顺便把代码附上,
总是弄不指针数组取地址,今天早上早起做了个小小练习:

#include <iostream>
using namespace std;
void testCharArray() {
    char ch1[12] = "Hello,world";
    char test[] = "string";
    char *pch1, *pch2 = test;
    char *pch3, *pch4;
    pch3 = &ch1[2];
    char ch = 'c';
    pch4 = &ch;
    pch1 = ch1;
    cout << pch1 << endl;    //输出 ch1[0]到\0 之前的所有字符
    cout << pch2 << endl;    //输出 ch1[0]到\0 之前的所有字符
    cout << pch3 << endl;    //输出 ch1[2]到\0 之前的所有字符
    cout << *pch3 << endl;    //解引用 pch3 输出 pch3 指向的字符
    cout << *pch4 << endl;    //解引用 pch4 输出 pch4 指向的字符
}

int main() {
    testCharArray();
    getchar();
    return 0;
}

结果:

2 comments

今天突然看到了你的博客。同样是用WordPress建的站,你的让我眼前一亮。

有没有时间交流一下建站心得?刚刚建站,感觉我还是有很多东西要学。

Leave a Comment

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

皖ICP备2020019260号-2