char* = "name" g++报告warn的原因

char* str = { "abcd" },先定义一个字符串常量“abcd“,再将指针str指向它,返回值是这个指针,由于字符串常量在编译时分配内存,只有程序退出时才被销毁,所以返回它的地址没有问题。

但是,g++会报告

warning:deprecated conversion from string constant to 'char *' 

为什么呢?原来char *背后的含义是:给我个字符串,我要修改它。

而理论上,我们传给函数的字面常量是没法被修改的

所以说,比较和理的办法是把参数类型修改为const char *。

这个类型说背后的含义是:给我个字符串,我只要读取它。

posted on 2018-11-02 15:17  矮油~  阅读(283)  评论(0编辑  收藏  举报

导航