1. int *a;
2. a=new int[2];
3. cin>>a[0];
4. cout<<a<<"\n";
5. cout<<&a<<"\n";
6. cout<<*a;
第5行的输出是什么? 我知道第4行将给出数组a的第一个元素的地址,第6行将给出数组a的第一个元素的值。但我无法弄清楚第5行的地址是什么。
感谢。
编辑:这是编译后的输出。
4作为输入。 0x5d2158是第4行的输出 0x28fefc是第5行的输出 4是第6行的输出
答案 0 :(得分:1)
它将给出指针a
本身的地址。指针还占用内存中的空间来存储它们指向的实际数据的地址,在这种情况下是整数数组。
答案 1 :(得分:1)
输入的每一行的说明:
int *a;
声明指向int a=new int[2];
分配大小为2的整数数组,并将第一个元素的地址(索引0)分配给指针a
cin>>a[0];
从标准输入读取值并将其分配给数组a
的第一个(索引0)元素cout<<a<<"\n";
打印的地址a
指向,表示大小为2的整数数组的第一个元素(索引0)的地址cout<<&a<<"\n";
打印存储指针a
的地址(即指针在内存中的位置)cout<<*a;
打印值a
点,意为 a
数组的第一个元素 答案 2 :(得分:0)
它将给出第一个元素的地址。就是这样
答案 3 :(得分:0)
它会给出指针'a'的地址。在图中解释。 a的地址是'0x7fffa28413c8',因此&amp; a的输出是0x7fffa28413c8。 http://i.stack.imgur.com/iPobm.png