作者m13m13m (奇怪 還沒收到??)
看板C_and_CPP
標題[問題] Pointer Array
時間Tue Mar 23 23:43:29 2010
遇到的問題: (題意請描述清楚)
在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
→ tabinoyume:我先回答最後一個問題 03/23 23:50
→ tabinoyume:+1會自動加上該型態的大小 也就是直接移往下一個 03/23 23:52
※ 編輯: m13m13m 來自: 140.123.104.55 (03/23 23:55)
→ tabinoyume:要取得a[1] 直接用*(a+1) 型態無論佔幾byte都OK 03/23 23:55
→ wudidog:前面的問題不會發生,會發生是因為原po的陣列宣告不正常 03/24 05:45
推 archon:為什麼一定要用 *(array+1) 而不用 array[1] 呢 (._.?) 03/24 15:20
推 dendrobium:作業的話 通常是老師規定的 科科 03/24 15:44
→ m13m13m:... 03/26 00:06