Re: [課業] 97年高考三級資料結構題目編譯無法成功...

看板C_and_CPP (C/C++)作者 (nahgnimiast)時間16年前 (2009/04/04 23:05), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《QQ29 (我愛阿蓉)》之銘言: : 大家好 : 請教一下 : 我測試一下發現觀念不好 請各位幫忙釐清 : int a[3][2] = {{10, 20}, {15, 25}, {50, 40}}; : int (* intPtr3)[2] = &a[2]; //1. 該怎麼解釋這個intPtr3是什麼東西呢?? 指向一個int a[2]的指標 我覺得 a[2]跟&a[2]的值都一樣,只是兩者型態不一樣,所以complier不會過 你改成 int (* intPtr3)[2] = (int(*)[2])a[2]; int (* intPtr3)[2] = (int(*)[2])&a[2]; 結果也是一樣。 由於 a是二維的所以 intPtr3 指標取一次 *intPtr3 指向的是 a[2] 這個也是一個位置 **intPtr3 指向的是 a[2][0] 這個指的是內容 我覺得大概是這樣,有錯請指正 : cout<<intPtr3<<endl; //2.為什麼這兩個數值會一樣呢? : cout<<*intPtr3<<endl; 我認為*應該就會取到 [2][0]阿??? : cout<<a[2]<<endl; //3.這兩個值應該會不一樣吧? : cout<<&a[2]<<endl; 但我印出來兩個值是一樣的 ...why?? : cout<<**intPtr3<<endl; //4. 為什麼要取兩顆心呢??? : 以上四個問題 有點疑惑 : 煩請各位給予指導 : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.67.96 ※ 編輯: tsaiminghan 來自: 218.168.67.96 (04/04 23:07)
文章代碼(AID): #19rtTJQE (C_and_CPP)
文章代碼(AID): #19rtTJQE (C_and_CPP)