C++问题求解答

char *p = "hello";
上述代码,在VS的X86平台下可以正常编译运行,但是换成VS的X64平台下进行编译,就会报 “const char* 无法初始化 char*" ,经过搜索也没有找到太好的答案,向问问大家,这到底是啥原因,难道因为编译环境不同导致的吗?#C/C++#
全部评论
或者换成  char p[] = "hello",常量区字符串一般情况下只能用const char *指
2 回复
分享
发布于 2020-10-03 21:32
"hello"是存在于常量字符串区的。所以理论上应该是用 const char* ,报这种操作是编译器底层的问题吧。不是很清楚
1 回复
分享
发布于 2020-10-03 21:21
联易融
校招火热招聘中
官网直投
你在linux上面的gcc上运行看看咋样,C语言按理说应该没有啥问题的,C++的话由于对类型严格一点可能会出这种问题
1 回复
分享
发布于 2020-10-04 08:42
编译器都那么说了,那就不要太勉强它了吧
点赞 回复
分享
发布于 2020-10-03 21:27
编译器的规定
点赞 回复
分享
发布于 2020-10-08 16:54
将 配置属性->C/C++->语言-> 符合模式 改为 否
点赞 回复
分享
发布于 2020-10-08 17:58
编译器的问题,我在vscode上会警告,但是不会编译失败。
点赞 回复
分享
发布于 2020-10-08 20:44
和编译器里面的规定有关系,const char *p = "hello world"; 这里的"hello world"是存放在字符常量区,所以正确的是用法是加上const。 可以参考下这篇文章:https://blog.csdn.net/donaldsy/article/details/106647709
点赞 回复
分享
发布于 2020-10-12 14:05

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务