這里&是取地址運(yùn)算符,*是間接運(yùn)算符。
&a 的運(yùn)算結(jié)果是一個指針,指針的類型是a 的類型加個*,指針?biāo)?br />指向的類型是a 的類型,指針?biāo)赶虻牡刂仿铮蔷褪莂 的地址。
*p 的運(yùn)算結(jié)果就五花八門了。總之*p 的結(jié)果是p 所指向的東西,
這個東西有這些特點(diǎn):它的類型是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 **。該指針?biāo)赶虻念愋褪莗 的類型,這
//里是int*。該指針?biāo)赶虻牡刂肪褪侵羔榩 自己的地址。
*ptr=&b; //*ptr 是個指針,&b 的結(jié)果也是個指針,且這兩個指針
//的類型和所指向的類型是一樣的,所以用&b 來給*ptr 賦
//值就是毫無問題的了。
**ptr=34; //*ptr 的結(jié)果是ptr 所指向的東西,在這里是一個指針,
//對這個指針再做一次*運(yùn)算,結(jié)果是一個int 類型的變量。