【发布时间】:2020-11-10 09:26:20
【问题描述】:
const char* arr[3];
arr[0] = "Hello";
arr[1] = "C++";
arr[2] = "World";
for (int i = 0; i < 3; i++) {
cout << arr[i];
}
int* pInt[3];
for (int i = 0; i < 3; i++)
{
pInt[i] = &i;
cout << pInt[i] << endl;
}
我将字符地址保存到数组中(arr),输出为HelloC++World。
我第二次将 int 地址保存到数组中(pInt),输出是地址。为什么不一样?
【问题讨论】:
-
将标题集中在问题上。学习很好,但不如手头的问题重要。
-
提示:
const char* arr[] = { "Hello", "C++", "World" };更好的是,了解std::vector。然后你就可以for (auto& s : arr)了,超级简单。 -
流插入运算符
<<将指向char的指针视为“C 样式”字符串。这就是cout << "Hello";打印“Hello”而不是数字地址的原因。 -
请注意,在 C++ 中,在大多数情况下,您宁愿使用
std::string而不是 char 数组。
标签: c++