- 此问题在此处已有答案**:
What is the difference between *&arr and *&arr[0] in C++, if arr is an array?(3个答案)
Difference between a
and &a
in C++ where a
is an array(4个答案)
Difference between &a, *(&a) and ((&a))(3个答案)
*& With Respect to Pointers in C++(4个答案)
5小时前关门了。
当我们在C++中运行这个代码时:
int main(){
int array[5] = {1,2,3,4,5};
cout << *(&array);
}
为什么要打印array
的第一个元素的地址?我以为(&array)
会给出array
的第一个元素的地址,*(&array)
会给出那个地址里面的值,因为我们在指针上使用了解引用*
操作符。
但是,它显示了array
的第一个元素的地址。
拜托,谁能告诉我为什么会这样?
1条答案
按热度按时间c6ubokkw1#
这里有很多事情很容易给予人偏头痛,所以让我们试着从一个简单得多的方法来看待它。让我们只说你有:
然后,很容易理解:
*&p
和p
是一样的,获取某个地址,然后解引用它,会把你带回到你开始的地方,你什么都没有完成。这是完全相同的事情:
*&array
、array
或数组中第一个值的地址。