说真的,我学了一年C/C++了,指针我还是没太理解,一点一点的来吧。
1.关于指针移动的问题,指针和数组可以互换的,指针就是数组,数组也可以退化为指针,数组名就是指针的首地址。
char *p="zhanghong";
也就是说0对应z。
也就是说1对应h。
也就是说2对应a。
p[0] 是错误的,没有p[0]这一项。也就是说p[0]就是p,p[0]。
p[1]指向h。
p[2]指向a。
#include<stdio.h>
int main()
{
char*p="zhanghong";
// printf("p=%s\n",p[0]); 这里p[0]是错误的。
printf("p+1=%s\n",p+1);
printf("p=%s\n",p);
printf("p+2=%s\n",p+2);
printf("p+3%s\n",p+3);
return 0;
}
farsight@ubuntu:~/point$ vi p1.c
farsight@ubuntu:~/point$ gcc p1.c
farsight@ubuntu:~/point$ ./a.out
p+1=hanghong
p=zhanghong
p+2=anghong
p+3nghong
329

被折叠的 条评论
为什么被折叠?



