c++ - 如何创建 char C++ 类型的指针数组?
问题描述
我对指针不是很熟悉,但我有一个任务要求我创建一个 char 类型的指针数组。我似乎无法让代码运行。
#include <iostream>
using namespace std;
int main() {
int n = 0;
char *seasons[] = { "Winter",
"Spring",
"Summer",
"Fall"};
cout << seasons[n] << endl;
return 0;
}
我从教科书中复制并粘贴了这段代码,但我不断收到数组中字符串的错误。错误为 E0144:“const char *”类型的值不能用于初始化“char *”类型的实体
解决方案
我想知道您的教科书制作者是否将现有的 C 代码快速而肮脏地转换为 C++。在 C 中,字符串字面量是类型数组char
(即使它们是不可变的),但在 C++ 中,它们是类型数组const char
。
这里的解决方案是将 的类型更改为seasons
以const char *[]
创建指向这些数组的指针const char
数组:
const char *seasons[] = { "Winter",
"Spring",
"Summer",
"Fall"};
顺便说一句,我也不喜欢你的书using namespace std;
。它用整个 std 命名空间污染了全局命名空间,这可能(并且根据我的经验)导致会破坏代码的冲突。
推荐阅读
- python - 如何在 pre_save 函数中更新另一个模型的字段?
- python - ImportError:无法使用对象检测 API 从“tensorflow.python.tpu”导入名称“feature_column_v2”
- android - Kotlin DSL 构建脚本依赖更新
- c# - 具有混合类型的 TreeView HierarchicalDataTemplate
- arrays - 如何仅使用迭代器 while 和数组运行方形数组
- javascript - 如何修复我的 React 应用程序中的尝试导入错误?
- javascript - 如何改变风格
- java - Appium + Selenium:配置失败:@BeforeTest 设置 java.lang.NoClassDefFoundError:org/openqa/selenium/remote/codec/w3c/W3CHttpCommandCodec
- node.js - 如何根据 url 参数限制 Meteor.publish()?
- c# - 当我将值写入 ComboBox 时,SelectedIndexChanged 事件不会触发。当我从 comboBox.Items 列表中选择一个值时它会触发