【发布时间】:2019-04-16 12:07:46
【问题描述】:
我是 C++ 的初学者,在处理字符数组时有一点我无法理解:所以,我知道指针本质上是“指向”另一个变量的内存地址的变量,而数组(例如:int a[20])是指向该数组中值的常量指针。当使用不同的数字类型(int、float 等)时,如果我们通过消息输出该数组的名称,它将显示第一个元素的地址,但如果我们对 char 类型执行相同操作,则不会显示地址,而是变量的值。 示例:
#include <iostream>
using namespace std;
int main()
{int a[]={1,2,3,4,5};
cout<<a<<endl; //through output, it shows the memory address of the first
element of the array;
char b[]={"Mountain"};
cout<<b; //It outputs the word "Mountain"
return 0;
}
char数组中的指针在输出时会自动转换成它的值吗?
【问题讨论】:
-
OT:引用:“C++ 初学者”你不应该研究这些类型的数组。改为研究
std::vector、std::array和std::string。如果你要编写真正的 C++,你无论如何都不需要旧的 C 风格的数组。 -
标题中提出的问题太宽泛了。如果您想问为什么打印 char 数组与打印 int 数组的工作方式不同,您的问题的一个好标题是“为什么打印 char 数组与打印 int 数组的工作方式不同?”
标签: c++