我们在cpp中打印数组的价值是多少?

我是 C++ 的初学者,我在我的代码中写了这个:

int *ptr;
int arr[4] = {1, 2, 3, 4};

cout << arr << endl;

这输出到'0x61ff00'。值是什么意思?谢谢!

回答

数组没有标准重载。然而, 存在过载const void*。该数组衰减为指向第一个元素的指针,该指针进一步隐式转换为const void*。结果是作为const void*对象值的地址的实现定义的文本表示。

内存地址本质上是数字。0x 是十六进制数的前缀。


以下不适用于示例,但适用于其他一些数组:如果数组元素为char,则字符流的行为不同,因为const char*. 在这种情况下,行为是将数组视为空终止字符串,结果是数组中包含的字符串。字符串文字是char.

例子:

std::cout << "Hello, World!";

输出:

Hello, World!

如果数组不包含空终止符,则程序的行为未定义。永远不要将这样的数组插入到字符流中。


以上是我们在cpp中打印数组的价值是多少?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>