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