這篇文章給大家分享的是有關(guān)C++ Primer中&、*符號(hào)多重定義與int *p和int* p區(qū)別的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元游仙做網(wǎng)站,已為上家服務(wù),為游仙各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
&
和*
這樣的符號(hào),既能用作表達(dá)式里的運(yùn)算符,也能作為聲明的一部分出現(xiàn),符號(hào)的上下文決定了符號(hào)的意義:
int i = 42; int &r = i; //&緊隨類(lèi)型名出現(xiàn),因此是聲明的一部分,r是一個(gè)引用 int *p; //*緊隨類(lèi)型名出現(xiàn),因此是聲明的一部分,p是一個(gè)指針p p = &i; //&出現(xiàn)在表達(dá)式中,是一個(gè)取地址符 *p = i; //*出現(xiàn)在表達(dá)式中,是一個(gè)解引用符 int &r2 = *p; //&是聲明的一部分,*是一個(gè)解引用符
在聲明的語(yǔ)句中,&
和*
用于組成復(fù)合類(lèi)型;在表達(dá)式中,他們的角色又轉(zhuǎn)變成運(yùn)算符。在不同場(chǎng)景下出現(xiàn)的雖然
是同一個(gè)符號(hào),但是由于含義截然不同,所以我們完全可以把他們當(dāng)做不同的符號(hào)來(lái)看待。
根據(jù)C++Primer介紹:
對(duì)于int* p
(這種寫(xiě)法合法,但是容易造成誤導(dǎo)),其基本數(shù)據(jù)類(lèi)型是int
,后面的*
其實(shí)是聲明符。在一組公用的數(shù)據(jù)類(lèi)型后面可以使用不同的聲明符。例如:
int i =1024, *p = &i, &r = i; //i是一個(gè)int類(lèi)型的數(shù)據(jù),p是一個(gè)int型的指針,r是一個(gè)int型引用。
對(duì)于int *p
,其和int* p
的含義一樣,都表示int類(lèi)型的指針變量p。
但是將聲明符緊跟著變量名是一種更容易理解的做法。否則可能會(huì)出現(xiàn)誤導(dǎo)現(xiàn)象:
例如
int* p1, p2;表示含義是p1是一個(gè)int型的指針,p2是一個(gè)int型變量。而不是p1,p2都是指針變量,它們共用的是基本數(shù)據(jù)類(lèi)型部分。
如果寫(xiě)成int *p1,p2;
則和上式表示的含義完全一樣,但是更加清晰,不會(huì)造成誤導(dǎo)。
不過(guò)對(duì)于以上兩種寫(xiě)法的使用,主要看個(gè)人的習(xí)慣,但是最好不要混用。
感謝各位的閱讀!關(guān)于“C++ Primer中&、*符號(hào)多重定義與int *p和int* p區(qū)別的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!