c++ - char* 与 const char* (再次!!!)
问题描述
我能找到的每个参考资料都表明我可以使用 char* cName = "Some Text",但我的 VS2019 抱怨。
我在 Stackoverflow 上看到了许多使用该语法的示例,许多 youtube 视频也展示了它的用法。
谁能解释为什么我看到我的错误(见下图)
解决方案
从 C++11 开始你不能这样做。c 风格的字符串字面量的类型是const char[]
(array of const char
),并且可以衰减到const char*
(pointer to const char
) 但不会衰减到 ( char*
pointer to non-const char
)。
在 C 中,字符串文字属于 类型
char[]
,可以直接分配给 (non-const)char*
。C++03 也允许它(但不推荐使用它,因为 C++ 中的文字const
)。C++11 不再允许在没有强制转换的情况下进行此类分配。
推荐阅读
- java - Spring Boot:应用程序显示 404 错误
- android - Android - com.android.support:appcompat-v7:22.2.1 中的数字 22 是什么?
- android - 我正在使用 Android Studio 3.1.3,但出现了一些错误
- python - 将 .log 文件导入 Jupyter 笔记本
- git - React 原生节点模块:如何在 git 中保持 Android 模块的变化?
- javascript - javascript中switch语句的行为不端
- qt - 如何获得网格三角形
- php - 如何在 laravel 中选择数据?
- mysql - Laravel MySQL 数据透视表到列
- php - 在目录中创建新文件时在 Linux 中运行 Crontab