作者zmc0076 (一億呆瓜斯坦幣)
看板C_and_CPP
標題[問題] 指標算數運算的問題
時間Tue Mar 31 15:01:17 2009
可能是小弟觀念不清楚,
#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)
1F:推 ianfang:a是相當於char ** 所以+1等於移動一個char * 03/31 15:12
2F:→ ianfang:你把a指定給char * 所以+1是移動一個char 03/31 15:13
3F:推 sbrhsieh:a 是 char (*)[10],不是 char**,a+1 是增加 10 bytes 03/31 15:16
4F:推 ianfang:阿~打錯了~前半部樓上才對 03/31 15:29