第三章 運(yùn)算符&和*
這里&是取地址運(yùn)算符,*是...書上叫做“間接運(yùn)算符”。
&a的運(yùn)算結(jié)果是一個(gè)指針,指針的類型是a的類型加個(gè)*,指針?biāo)赶虻念愋?BR> 是a的類型,指針?biāo)赶虻牡刂仿?,那就是a的地址。
*p的運(yùn)算結(jié)果就五花八門了。總之*p的結(jié)果是p所指向的東西,這個(gè)東西有這
些特點(diǎn):它的類型是p指向的類型,它所占用的地址是p所指向的地址。
例五:
int a=12;
int b;
int *p;
int **ptr;
p=&a;//&a的結(jié)果是一個(gè)指針,類型是int*,指向的類型是int,指向的地址
是a的地址。
*p=24;//*p的結(jié)果,在這里它的類型是int,它所占用的地址是p所指向的地
址,顯然,*p就是變量a。
ptr=&p;//&p的結(jié)果是個(gè)指針,該指針的類型是p的類型加個(gè)*,在這里是int
**。該指針?biāo)赶虻念愋褪莗的類型,這里是int*。該指針?biāo)赶虻牡刂肪褪侵羔?BR> p自己的地址。
*ptr=&b;//*ptr是個(gè)指針,&b的結(jié)果也是個(gè)指針,且這兩個(gè)指針的類型和所
指向的類型是一樣的,所以用&b來給*ptr賦值就是毫無問題的了。
**ptr=34;//*ptr的結(jié)果是ptr所指向的東西,在這里是一個(gè)指針,對(duì)這個(gè)指
針再做一次*運(yùn)算,結(jié)果就是一個(gè)int類型的變量。
這里&是取地址運(yùn)算符,*是...書上叫做“間接運(yùn)算符”。
&a的運(yùn)算結(jié)果是一個(gè)指針,指針的類型是a的類型加個(gè)*,指針?biāo)赶虻念愋?BR> 是a的類型,指針?biāo)赶虻牡刂仿?,那就是a的地址。
*p的運(yùn)算結(jié)果就五花八門了。總之*p的結(jié)果是p所指向的東西,這個(gè)東西有這
些特點(diǎn):它的類型是p指向的類型,它所占用的地址是p所指向的地址。
例五:
int a=12;
int b;
int *p;
int **ptr;
p=&a;//&a的結(jié)果是一個(gè)指針,類型是int*,指向的類型是int,指向的地址
是a的地址。
*p=24;//*p的結(jié)果,在這里它的類型是int,它所占用的地址是p所指向的地
址,顯然,*p就是變量a。
ptr=&p;//&p的結(jié)果是個(gè)指針,該指針的類型是p的類型加個(gè)*,在這里是int
**。該指針?biāo)赶虻念愋褪莗的類型,這里是int*。該指針?biāo)赶虻牡刂肪褪侵羔?BR> p自己的地址。
*ptr=&b;//*ptr是個(gè)指針,&b的結(jié)果也是個(gè)指針,且這兩個(gè)指針的類型和所
指向的類型是一樣的,所以用&b來給*ptr賦值就是毫無問題的了。
**ptr=34;//*ptr的結(jié)果是ptr所指向的東西,在這里是一個(gè)指針,對(duì)這個(gè)指
針再做一次*運(yùn)算,結(jié)果就是一個(gè)int類型的變量。