#include<iostream>
using namespace std;
int main()
{
int a[]={10,20,30,40,50};
int *b,**c,*d;
cout<<a<<endl; ..............(1)
cout<<b; ..............(2)
return 1;
}
如果我只運行包含該程序(1)標記的語句輸出是同一個指針在用另一個指針打印時會給出不同的地址嗎?
0x22fecc
但如果我運行程序與兩個語句,即(1)和(2) 則輸出是
0x22fec8 0x401d2e
Q1:爲什麼2例的印刷爲一個不同的值
Q2:如果我做b = a然後打印b和a?
Q3:爲什麼b和a在Q2中給自己同一個地址?他們現在是否一樣,即他們共享相同的位置? b是現在的別名嗎?
Q4:如果我做b = a + 1然後cout < < b爲什麼它給出了一個地址?它應該給出一個+ 1的地址?
Is cout<<a is equivalent to cout<<&a ?
我在Win7 32bit上使用代碼塊13.12。
這是未定義的行爲來打印未初始化的'b'。另外,每次運行程序時地址都不應該相同。 – juanchopanza 2014-10-09 15:28:36