作者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