看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 在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