看板 C_and_CPP 關於我們 聯絡資訊
示意: **ptr ┌info *p ┌info value ┌info *ptr │ p │ &value ┴ ptr │ &p ┴ &ptr ┴ ary[].. ┌info &ary ┴ p 只是利用陣列 ary 連續的特性來達到操作的目的,就像對 value 一樣 至於你好奇的 *(*(TYPE+i)+j) ary 可以為什麼轉成 ptr 不行 只能說 *(*(ary+i)+j) 表現的並不是指標的行為,只是通用於[]..轉換 有興趣的話可以印出 printf("%p", &ary); printf("%p", ary); printf("%p", *ary); 來觀察(以二維為例) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.184.50
holymars:*(*(ary+i)+j) 表現的是指標的行為沒錯 陣列會decay 03/31 23:29
holymars:成指標 03/31 23:29
holymars:出錯的點在於 ary在運算裡是decay成「指向int[3]的指標」 03/31 23:30
holymars:int** ptr是指向int*的指標 int[3]和int*的sizeof是不一 03/31 23:30
holymars:樣的.. 03/31 23:30
snowlike:我視*為取值的表現來表達,若視decay為其性質,我也認同 03/31 23:52