御笔剑客 发表于 2018-3-28 23:50:36

关于指向字符的指针的一个问题

#include <iostream>
#include <string>
using namespace std;


int main()
{
    char *ptr="1232412323";
    while(*ptr!='\0'){
    cout<<*ptr<<endl;
    ptr++;
    }
    return 0;
}



为什么会爆出这个警告呢?
warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]|

人造人 发表于 2018-3-29 00:01:24

C++对类型要求比较严格,字符串常量是 const char *
把 const char * 赋值给 char * 就会报你那样的警告
在我的环境下不是报警告,而是直接报错
1>c:\visualstudioprojects\c++\c++\main.cpp(8): error C2440: “初始化”: 无法从“const char ”转换为“char *”

BngThea 发表于 2018-3-29 07:52:21

你的指针是一个常指针,不允许移动
页: [1]
查看完整版本: 关于指向字符的指针的一个问题