gpt4 book ai didi

c++ - 为什么当我取消引用数组指针时,结果值是指向数组第一个元素的指针,而不是整个数组对象?

转载 作者:行者123 更新时间:2023-12-04 11:17:41 25 4
gpt4 key购买 nike

#include<iostream>

int num[3]={66,77,88};

int main()
{
int(*pi)[3]=&num;
std::cout<<*pi;
}
结果是地址而不是数组。这背后的解释是什么?

最佳答案

not the entire array object?

*pi给出数组,即 int[3] .但是 operator<<std::basic_ostream没有重载数组但有一个 overload取指针( const void* ),然后 array-to-pointer decay发生,转换后的指针( int* )指向数组的第一个元素,然后被转换为 const void* ,然后传递给 std::cout并打印出来。

There is an implicit conversion from lvalues and rvalues of array type to rvalues of pointer type: it constructs a pointer to the first element of an array. This conversion is used whenever arrays appear in context where arrays are not expected, but pointers are:

关于c++ - 为什么当我取消引用数组指针时,结果值是指向数组第一个元素的指针,而不是整个数组对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66865533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com