C 和C 引用的區別

2021-06-09 14:17:06 字數 352 閱讀 9641

c#用多了,最近又回到c++程式設計。發現有些致命的區別,如果不注意,很可能導致一些莫名其妙的bug。引用型別就是其中乙個。

在c#中,引用跟指標比較接近,除了值型別(int, float, struct等),其它型別都是引用型別。它本身是乙個棧上面的變數,指向堆上面的具體例項,可以隨意更改它指向的例項。

而在c++中,引用是變數的乙個別名而已,它需要在初始化時指向乙個例項,之後對它的操作就相當於在原來例項上做修改。大部分情況下像c#更改引用的用法是可以編譯通過的:

classa a1, a2;

classa &a = a1;

a = a2;

不要以為a現在是a2的引用,最後一句是將a2的賦值給a1了!

注意C 和C 引用的區別

c 用多了,最近又回到c 程式設計。發現有些致命的區別,如果不注意,很可能導致一些莫名其妙的bug。引用型別就是其中乙個。在c 中,引用跟指標比較接近,除了值型別 int,float,struct等 其它型別都是引用型別。它本身是乙個棧上面的變數,指向堆上面的具體例項,可以隨意更改它指向的例項。而在...

C 引用和指標的區別

很久沒寫過這類文章了,本來是想做下筆記,既然要做筆記,不如寫下部落格,就動起手來。文采不怎麼樣,還忘大家見諒 c 引用變數是c 中新增的一種復合型別,也就是說標準c語言中沒有引用變數。所謂引用,實際上就是乙個已定義變數的別名,別名我想大家小時候都有,應該可以理解,別名表示的是同乙個人,這裡引用變數和...

C 引用和指標的區別

c 引用和指標在間接使用其他物件的各種操作功能上面類似,但是兩者的不同之處也很明顯 1.指標本身佔據記憶體空間,但是引用只是乙個物件的別名,本身不分配記憶體空間 2.指標定義時可以不初始化,但是定義乙個引用必須進行初始化,並且初始化時只能是乙個物件 比如 int b 3.14 這樣是錯的,要明白 引...