指針—學(xué)習(xí)c/c++的第一步(第三章)

字號:

第三章。運算符&和*
    這里&是取地址運算符,*是...書上叫做“間接運算符”。&a的運算結(jié)果是一個指針,指針的類型是a的類
    型加個*,指針所指向的類型是a的類型,指針所指向的地址嘛,那就是a的地址。*p的運算結(jié)果就五花八
    門了。總之*p的結(jié)果是p所指向的東西,這個東西有這些特點:它的類型是p指向的類型,它所占用的地址
    是p所指向的地址。
    例五: 
    int a=12; 
    int b; 
    int *p; 
    int **ptr; 
    p=&a;//&a的結(jié)果是一個指針,類型是int*,指向的類型是int,指向的地址是a的地址。
    *p=24;//*p的結(jié)果,在這里它的類型是int,它所占用的地址是p所指向的地址,顯然,*p就是變量a。
    ptr=&p;//&p的結(jié)果是個指針,該指針的類型是p的類型加個*,在這里是int**。該指針所指向的類型是p
    的類型,這里是int*。該指針所指向的地址就是指針p自己的地址。
    *ptr=&b;//*ptr是個指針,&b的結(jié)果也是個指針,且這兩個指針的類型和所指向的類型是一樣的,所以用
    &b來給*ptr賦值就是毫無問題的了。
    **ptr=34;//*ptr的結(jié)果是ptr所指向的東西,在這里是一個指針,對這個指針再做一次*運算,結(jié)果就是
    一個int類型的變量。