注意C 和C 引用的區別

2021-09-06 01:30:11 字數 385 閱讀 9101

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

C 引用注意!!

引用型別其實就是變數的別名,但是這個變數也是有要求的。1.引用不是一種資料型別,不能建立指向引用型別的指標 2.可以建立指標變數的引用 int a 3 int b a b是指向a的指標變數 另佔空間 存的是變數a的位址 int p b 宣告並初始化指標b的引用 3.不能建立陣列的引用 char c ...

C 引用和指標的區別

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