C和C指針小記(九)-指針用法1

一、 *p++

最經常使用的一個指針的用法,就是在循環中用來迭代.

*p++ 共有3步操做:
一、++操做符把p所指向的內存中的值複製一份
二、++操做符把p加1(實際是一個p所指內存單元的大小,這也是編譯器這麼作使得用指針來迭代成爲能)
三、*操做符對p的拷貝(未加1以前的地址)作間接訪問(也就是取值)數組

二、運用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;
}

三、運用2

/*
 *  把數組中的全部元素都初始化爲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;
    }
}
相關文章
相關標籤/搜索