普通類(lèi)型變量的聲明
char a =10 ;? //聲明一個(gè)char類(lèi)型,值為10的a變量
short b = 20; //聲明一個(gè)short類(lèi)型巷波,值為20的b變量
int c = 30; //聲明一個(gè)int類(lèi)型瓷炮,值為30的c變量
這是我們普通數(shù)據(jù)類(lèi)型的聲明葱色,十分常規(guī)。
帶*類(lèi)型變量的聲明
int* px;? ?//聲明一個(gè)int* 類(lèi)型的px變量
int** px2; //聲明一個(gè)int**類(lèi)型的px2變量
int*** px3; //聲明一個(gè)int***類(lèi)型的px3變量
int**** px4; //聲明一個(gè)int****類(lèi)型的px4變量
現(xiàn)在大多數(shù)書(shū)上聲明指針類(lèi)型是int *px或者int * px 這樣的形式的娘香,這兩種形式都是不推薦的苍狰。這樣的聲明不太符合程序員的思維。
*(px1) 代表int類(lèi)型
*(px2) 代表int*類(lèi)型
*(px3) 代表int**類(lèi)型
*(px4) 代表int***類(lèi)型
在帶*類(lèi)型的變量的前面加上一個(gè)*烘绽,其類(lèi)型就是原來(lái)的類(lèi)型減去一個(gè)*
帶*類(lèi)型變量的賦值
如果是int類(lèi)型賦值淋昭,我們上面看到,是直接int a; a=10即可诀姚,其實(shí)可以寫(xiě)成a= (int)10;這樣賦值响牛,只是int強(qiáng)制類(lèi)型我們默認(rèn)是不用寫(xiě)的。
但是帶*類(lèi)型的賦值赫段,是不能省略的呀打,具體如下。
int* px;? ?
int** px2;
int*** px3;?
px = (int*)10;? ?//給int*賦值
px2 = (int**)20;?//給int**賦值
px3 = (int***)30;//給int***賦值
&符號(hào)的作用
&符號(hào)作用其實(shí)是去變量的地址
char a = 10;
short b = 20;
int c = 30;
char* pa = &a;
short* pb = &b;
int* pc = &c;
&pa 變成了char**類(lèi)型
&pb 變成類(lèi)short**類(lèi)型
&pc 變成類(lèi)int**類(lèi)型
取值
帶*類(lèi)型的變量糯笙,可以通過(guò)在其變量前加*來(lái)獲取其指向內(nèi)存中存儲(chǔ)的值
? ? int x, y;
? ? int* px1;
? ? int** px2;
? ? int*** px3;
? ? x =10;
? ? px1 = &x;? //取x的地址
? ? px2 = &px1;? //取x地址的地址
? ? px3 = &px2; //取x地址的地址的地址
? ? y= (*(*(*px3)));? //反取
所以y的值為10贬丛。