指針c語(yǔ)言 指針和引用的區(qū)別是什么?
指針和引用的區(qū)別是什么?引用可以看作是一個(gè)特殊的指針。引用是由C引入的概念,而不是C中的概念!實(shí)際上,引用是指針的封裝類型,實(shí)際上是由指針機(jī)制實(shí)現(xiàn)的。引用可以看作是一個(gè)固定指針,但外部調(diào)用的形式是類型
指針和引用的區(qū)別是什么?
引用可以看作是一個(gè)特殊的指針。引用是由C引入的概念,而不是C中的概念
!實(shí)際上,引用是指針的封裝類型,實(shí)際上是由指針機(jī)制實(shí)現(xiàn)的。
引用可以看作是一個(gè)固定指針,但外部調(diào)用的形式是類型調(diào)用。
Reference是C引入的一個(gè)新元素,它更好地體現(xiàn)了封裝的概念,本質(zhì)上是一個(gè)指針。
結(jié)論:引用是指針改變了它的衣服。一事有兩面。增加了新的概念元素來(lái)支持C語(yǔ)言的設(shè)計(jì)語(yǔ)義(如復(fù)制結(jié)構(gòu)的語(yǔ)法自然性)。
指針、數(shù)組名、引用三者的相同點(diǎn)與區(qū)別?
指針、數(shù)組名和引用都可以對(duì)地址中的值進(jìn)行操作。區(qū)別:指針:指針變量指向一個(gè)地址。也就是說(shuō),如果要操作一個(gè)值并定義int*P=&A,則P指向a的地址。如果a的值是20,則a在內(nèi)存中的地址是0x1111,而P中存儲(chǔ)的值是0x1111。如果輸出P的值,則P=0x1111,而不是20。數(shù)組名稱:存儲(chǔ)在連續(xù)空間中的數(shù)值。如果定義了int b[10],那么b[0]&B[0]的地址是0x0000,因?yàn)閕nt type占用2個(gè)字節(jié),那么&B[1]=0x000f,依此類推。操縱整個(gè)數(shù)組與操縱一維指針相同。Int*P=B;(與Int*P=&B[0]相同)。引用:實(shí)際上,它對(duì)同一內(nèi)存地址的內(nèi)容進(jìn)行操作。如果定義了fun(int&AmpC){C},則調(diào)用fun函數(shù)時(shí)將使用以下方法:int a=0fun(a)cout
對(duì)變量的引用訪問(wèn)是直接訪問(wèn),而指針訪問(wèn)是間接訪問(wèn)。
引用是變量的別名。它不分配自己的內(nèi)存空間,但指針有自己的內(nèi)存空間。
引用在開(kāi)頭綁定到一個(gè)內(nèi)存空間(必須在開(kāi)頭指定初始值),因此它只能是該
內(nèi)存空間的名稱,不能更改為任何其他名稱。當(dāng)然,您可以更改此內(nèi)存空間的值。
例如
int I=3,j=4
int&x=I//成為I的別名
X=j//不能否認(rèn)X仍然引用I而不是成為j的別名。它只是更改X和j共享的內(nèi)存空間的值。
這與指針不同,它可以隨時(shí)改變自己的方向