[問題] Pointer Array

看板C_and_CPP作者 (奇怪 還沒收到??)時間14年前 (2010/03/23 23:43), 編輯推噓2(205)
留言7則, 5人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 在array中指標+1 就是往下指嗎? int array={2,4,6}; printf("%d",*array); 會是2 但是 printf("%d",*(array+1)); 會是4嗎? 怎麼好像有時可以有時又不行... 改成array+ sizeof(int) 編譯器也在吠 好,我用 int *p = &array[0]; printf("%d",*p); 會是2 p = &array[1]; printf("%d", *p); 又不會是4 又有時會有時不會 好煩阿 請問 如果宣告的是array可是 又一定要用array+X的方式去存取array下一個index的值 應該怎麼辦呢? 如果今天是 str array[4]; 是structure array 我又應該加多少 去移動ptr呢? 謝謝各位 >(_ _)< >(_ _)< >(_ _)< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.104.55

03/23 23:50, , 1F
我先回答最後一個問題
03/23 23:50, 1F

03/23 23:52, , 2F
+1會自動加上該型態的大小 也就是直接移往下一個
03/23 23:52, 2F
※ 編輯: m13m13m 來自: 140.123.104.55 (03/23 23:55)

03/23 23:55, , 3F
要取得a[1] 直接用*(a+1) 型態無論佔幾byte都OK
03/23 23:55, 3F

03/24 05:45, , 4F
前面的問題不會發生,會發生是因為原po的陣列宣告不正常
03/24 05:45, 4F

03/24 15:20, , 5F
為什麼一定要用 *(array+1) 而不用 array[1] 呢 (._.?)
03/24 15:20, 5F

03/24 15:44, , 6F
作業的話 通常是老師規定的 科科
03/24 15:44, 6F

03/26 00:06, , 7F
...
03/26 00:06, 7F
文章代碼(AID): #1BgE6Zmz (C_and_CPP)