字符串定义代码编译出错

来源:5-8 字符串的指针表示

weixin_慕容8569692

2022-08-13

char* helloWorld = “helloworld”;

上述代码在编译时会出现如下错误:
C++ 类型的值不能用于初始化 类型的实体

解决方案是修改项目的复合模式为“否”,出现这个现象的原因是什么?在实际的开发中也是这么处理的吗?每创建一个项目都需要修改项目属性?

写回答

1回答

quickzhao

2022-08-14

不要只看表面。这个问题的根本原因是类型转换问题,“helloworld”是不可修改的字符信息;如果定义成const char* helloWorld = "helloworld"; 就没有问题了,早期的编译器检查不严格是可以通过编译的;现在的编译器如果这么定义char* helloWorld = “helloworld”; 一般会报错,关闭了默认打开的复合模式则关闭了所有严格标准符合性编译器选项,编译器语法检查会没有那么严格,不建议关闭此选项。

0
0

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程