最经常使用的一个指针的用法,就是在循环中用来迭代.
*p++ 共有3步操做:
一、++操做符把p所指向的内存中的值复制一份
二、++操做符把p加1(实际是一个p所指内存单元的大小,这也是编译器这么作使得用指针来迭代成为能)
三、*操做符对p的拷贝(未加1以前的地址)作间接访问(也就是取值)数组
/* * 给定一个指向以NULL结尾的指针列表的指针,在列表中的字符串中查找一个特定的字符。用指针 */ #define TRUE 1 #define FALSE 0 int find_char(char **strings , char value) { char *string; //对于列表中的每一个字符串 while ((string = *strings++ ) != NULL) { //观察字符串中的每一个字符,看看它是否是咱们须要查找的那个. while ((string != '\0')) { if (*string++ == value) { return TRUE; } } } return FALSE; }
/* * 把数组中的全部元素都初始化为0. 用指针 */ #define N_VALUES 5 float values[N_VALUES]; void init_zero_arr(float fa[]){ float *vp; for (vp = &values[0]; vp < &values[N_VALUES]; ) { *vp++ = 0; } }