为了账号安全,请及时绑定邮箱和手机立即绑定

C+反对将字符串常量转换为“char*”

C+反对将字符串常量转换为“char*”

C++
白衣染霜花 2019-07-27 15:15:27
C+反对将字符串常量转换为“char*”我有一节课private char str[256];为此,我有一个显式的构造函数:explicit myClass(const char *func){     strcpy(str,func);}我称之为:myClass obj("example");当我编译它时,我会收到以下警告:从字符串常量到“char*”的不推荐转换为什么会发生这种事?
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

警告:

从字符串常量到“char*”的不推荐转换

是因为您在某个地方(而不是在您发布的代码中)做了这样的事情:

void foo(char* str);foo("hello");

问题在于,您正在尝试转换字符串文本(使用类型为const char[])到char*.

您可以将const char[]const char*因为数组会衰减到指针,但是您要做的是使一个可变的常量。

这种转换可能是允许的C兼容性,并只是给你提到的警告。



查看完整回答
反对 回复 2019-07-28
  • 3 回答
  • 0 关注
  • 322 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信