char* = "name" g++报告warn的原因
char* str = { "abcd" },先定义一个字符串常量“abcd“,再将指针str指向它,返回值是这个指针,由于字符串常量在编译时分配内存,只有程序退出时才被销毁,所以返回它的地址没有问题。
但是,g++会报告
warning:deprecated conversion from string constant to 'char *'
为什么呢?原来char *背后的含义是:给我个字符串,我要修改它。
而理论上,我们传给函数的字面常量是没法被修改的。
所以说,比较和理的办法是把参数类型修改为const char *。
这个类型说背后的含义是:给我个字符串,我只要读取它。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步