最經常使用的一個指針的用法,就是在循環中用來迭代.
*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; } }