推 chuegou: 所以&name+1就會變成0x000C <-- 阿??? 02/01 16:09
推 friends29: (&name)+1 跟 &(name +1) 是不一樣滴 02/01 16:34
→ friends29: 你把陣列大小改一下 再用同樣的方式列出記憶體位置就會 02/01 17:01
→ friends29: 懂了 02/01 17:01
→ anoymouse: &(name+1)編譯不過 name+1本身不是指標常數不能取&吧 02/01 17:39
※ 編輯: anoymouse (118.160.31.81), 02/01/2017 17:40:20
推 ko27tye: 雖然看不懂你想問什麼不過00~0B都是屬於name的記憶體區塊 02/01 19:40
→ ko27tye: 但&name不會用00~0B這種表現方式 而是扔給你開頭的位址 02/01 19:42
→ ko27tye: 所以陣列名稱是一個const pointer 指向陣列的第一個元素 02/01 19:43
就是在問陣列名稱的位址跟第一個元素的位址一樣 可是同一個位址卻有兩個不一樣的值
一個是指到陣列第一個元素的位址,一個是name[0]的內容0
→ friends29: 講不對去 (name+1)而已 沒有& 02/01 20:11
※ 編輯: anoymouse (118.160.31.81), 02/01/2017 21:42:50
推 ko27tye: 下標運算 name[k] = *(name+k) 02/01 21:56
→ ko27tye: 你說有兩個值 因為一個是記憶體位址一個是對位址做*取值 02/01 21:57
→ ko27tye: 就是指標的概念02/01 21:58
推 boss0405: 因為type不一樣,你另外定義一個指標去指就知道了02/02 09:46
→ boss0405: int *b = name可以編但int *b = &name會warning,同理02/02 09:48
→ boss0405: int (*b)[3] = &name可以編int (*b)[3] = name會warning02/02 09:49
→ anoymouse: 可是要怎麼解釋兩者物理位址顯示是一樣? 02/02 18:31
推 boss0405: name代表的是陣列位址name和&name的開頭位址都一樣,只02/02 18:39
→ boss0405: 是type不一樣而已02/02 18:39
重寫一遍了 發現沒問清楚
※ 編輯: anoymouse (223.136.67.39), 02/02/2017 19:38:30
※ 編輯: anoymouse (118.160.31.81), 02/02/2017 20:04:09
※ 編輯: anoymouse (118.160.31.81), 02/02/2017 21:20:00
→ Feis: 有人有興趣解釋一下 1[name] 會是甚麼嗎 02/03 02:16
推 yvb: 回F大, 好暗黑的 subscripting 等同算式. 即使語意上沒道理. 02/03 09:10