C 的傳值 傳引用 傳指標的區別

2021-09-26 02:40:33 字數 488 閱讀 7883

參考文章

****

★相同點:

●都是位址的概念;

指標指向一塊記憶體,它的內容是所指記憶體的位址;而引用則是某塊記憶體的別名。

★不同點:

●指標是乙個實體,而引用僅是個別名;

●引用只能在定義時被初始化一次,之後不可變;指標可變;引用「從一而終」,指標可以「見異思遷」;

●引用沒有const,指標有const,const的指標不可變;(具體指沒有int& const a這種形式,而const int& a是有 的, 前者指引用本身即別名不可以改變,這是當然的,所以不需要這種形式,後者指引用所指的值不可以改變)

●引用不能為空,指標可以為空;

●「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身的大小;

●指標和引用的自增(++)運算意義不一樣;

●引用是型別安全的,而指標不是 (引用比指標多了型別檢查)

C 中傳值,傳指標,傳引用的區別

自 當呼叫函式時,傳遞的引數有傳值 傳指標 傳引用這三種形式。直接傳值是直接開闢了乙個跟主函式實參一樣的空間 位址不一樣 裡面存放了了跟實參一樣大小的值,就相當於數值大小相同但是位置不同。你在這個呼叫函式裡使用這個一樣大小的值,完全不影響主函式實參的值。就好比主函式的空間就是一棟樓,裡面的乙個房間裡...

傳值和傳引用 傳指標的區別

傳值,是把實參的值賦值給行參,那麼對行參的修改,不會影響實參的值 傳位址,是傳值的一種特殊方式,只是他傳遞的是位址,不是普通的如 int,那麼傳位址以後,實參和行參都 指向同乙個物件 傳引用,真正的以位址的方式傳遞引數,傳遞以後,行參和實參 都是同乙個物件 只是他們名字不同而已,對行參的修改將影響實...

傳值 傳指標和傳引用的區別

傳值 void myswap int a,int b 傳指標 1 void myswap int a,int b 2 void myswap int a,int b 引用傳遞 void myswap int a,int b 函式傳值 傳值實際上是在子函式的棧裡面重新開闢乙個空間儲存傳進來的實參引數值...