看板 C_and_CPP 關於我們 聯絡資訊
可能是小弟觀念不清楚, #include<stdio.h> #include<stdlib.h> int main(void) { char a[3][10]={"Tom","Lily","James"}; char *ptr=a; puts(a+1); puts(ptr+1); system("pause"); return 0; } ------------執行結果------------------- Lily om 請按任意鍵繼續... 上面這個看起來很基礎的指標程式, 照理說a與ptr是指向同一個位址, 作相同的運算但是指向的位址卻不同了!! 一直想不透為什麼, 希望有高手能幫我講解一下這段程式的觀念, 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.70.49 ※ 編輯: zmc0076 來自: 140.115.70.49 (03/31 15:13)
ianfang:a是相當於char ** 所以+1等於移動一個char * 03/31 15:12
ianfang:你把a指定給char * 所以+1是移動一個char 03/31 15:13
sbrhsieh:a 是 char (*)[10],不是 char**,a+1 是增加 10 bytes 03/31 15:16
ianfang:阿~打錯了~前半部樓上才對 03/31 15:29