日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++引用入门教程(一)

發(fā)布時(shí)間:2025/4/5 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++引用入门教程(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??在C ++ 中引用好比一個(gè)對(duì)象的量子糾纏態(tài),改變這個(gè)糾纏態(tài),就改變對(duì)象

??我們知道,參數(shù)的傳遞本質(zhì)上是一次賦值的過(guò)程,賦值就是對(duì)內(nèi)存進(jìn)行拷貝。所謂內(nèi)存拷貝,是指將一塊內(nèi)存上的數(shù)據(jù)復(fù)制到另一塊內(nèi)存上

??對(duì)于像 char、bool、int、float 等基本類型的數(shù)據(jù),它們占用的內(nèi)存往往只有幾個(gè)字節(jié),對(duì)它們進(jìn)行內(nèi)存拷貝非??焖?。而數(shù)組、結(jié)構(gòu)體、對(duì)象是一系列數(shù)據(jù)的集合,數(shù)據(jù)的數(shù)量沒(méi)有限制,可能很少,也可能成千上萬(wàn),對(duì)它們進(jìn)行頻繁的內(nèi)存拷貝可能會(huì)消耗很多時(shí)間,拖慢程序的執(zhí)行效率。

??C/C++ 禁止在函數(shù)調(diào)用時(shí)直接傳遞數(shù)組的內(nèi)容,而是強(qiáng)制傳遞數(shù)組指針,這點(diǎn)已在《C語(yǔ)言指針變量作為函數(shù)參數(shù)》中進(jìn)行了講解。而對(duì)于結(jié)構(gòu)體和對(duì)象沒(méi)有這種限制,調(diào)用函數(shù)時(shí)既可以傳遞指針,也可以直接傳遞內(nèi)容;為了提高效率,我曾建議傳遞指針
??但是在 C++ 中,我們有了一種比指針更加便捷的傳遞聚合類型數(shù)據(jù)的方式,那就是引用(Reference)。

??引用(Reference)是 C++ 相對(duì)于C語(yǔ)言的又一個(gè)擴(kuò)充。引用可以看做是數(shù)據(jù)的一個(gè)別名,通過(guò)這個(gè)別名和原來(lái)的名字都能夠找到這份數(shù)據(jù)。引用類似于 Windows 中的快捷方式,一個(gè)可執(zhí)行程序可以有多個(gè)快捷方式,通過(guò)這些快捷方式和可執(zhí)行程序本身都能夠運(yùn)行程序;引用還類似于人的綽號(hào)(筆名),使用綽號(hào)(筆名)和本名都能表示一個(gè)人。

??引用的定義方式類似于指針,只是用&取代了*,語(yǔ)法格式為:

type &name = data;

??type 是被引用的數(shù)據(jù)的類型,name 是引用的名稱,data 是被引用的數(shù)據(jù)。引用必須在定義的同時(shí)初始化,并且以后也要從一而終,不能再引用其它數(shù)據(jù),這有點(diǎn)類似于常量(const 變量)。

#include <iostream> using namespace std; int main() {int a = 99;int &r = a;cout << a << ", " << r << endl;cout << &a << ", " << &r << endl;return 0; } 99, 99 0x7ffe457b9a9c, 0x7ffe457b9a9c

本例中,變量 r 就是變量 a 的引用,它們用來(lái)指代同一份數(shù)據(jù);也可以說(shuō)變量 r 是變量 a 的另一個(gè)名字。從輸出結(jié)果可以看出,a 和 r 的地址一樣,都是0x28ff44;或者說(shuō)地址為0x28ff44的內(nèi)存有兩個(gè)名字,a 和 r,想要訪問(wèn)該內(nèi)存上的數(shù)據(jù)時(shí),使用哪個(gè)名字都行。

??注意,引用在定義時(shí)需要添加&,在使用時(shí)不能添加&,使用時(shí)添加&表示取地址。如上面代碼所示,第 6 行中的&表示引用,第 8 行中的&表示取地址。除了這兩種用法,&還可以表示位運(yùn)算中的與運(yùn)算。

由于引用 r 和原始變量 a 都是指向同一地址,所以通過(guò)引用也可以修改原始變量中所存儲(chǔ)的數(shù)據(jù),請(qǐng)看下面的例子

#include <iostream> using namespace std; int main() {int a = 99;int &r = a;r = 47;cout << a << ", " << r << endl;return 0; } 47, 47

如果讀者不希望通過(guò)引用來(lái)修改原始的數(shù)據(jù),那么可以在定義時(shí)添加 const 限制,形式為:
const type &name = value;

也可以是:
type const &name = value;

這種引用方式為常引用

總結(jié)

以上是生活随笔為你收集整理的C++引用入门教程(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。