C语言指针与字符串数组中的一些疑问


本人初学C语言,在指针字符串中感觉指针用一次它的指向就变一次,如果下次用的时候还的把它还原回来,一定要再定义个数组吗?使指针回到它初始位置的方法有哪些?

指针的使用是相当灵活的,你可以不需要改变指针的情况进行引用
比如
char a[10]="abcdefg"
char *p=a;
你同样可以使用 p[i]或者 *(p+i)去访问 a[i]的内容
但灵活的同时也有风险
如果一定要使指针回到初始地方,你可以再定义一个指针
char *p1=p;
使用p,当需要回到初始位置的时候,
p=p1;


char *p;
char a[10]="asdafgg";
p=a;
....
....//用了p
....

下次再用
p=a;//这样就行


指针变量的值为存储地址,指针为间接寻址,读写速度快。使用指针之前都必须要初始化的,否则可能会访问内存中不能访问的单元,使系统崩溃。一楼回答的方法是很常用的。若用p=a+i访问字符,当i=0时,回到开始处。



Copyright © 2009-2011 All Rights Reserved.