請問c 中的引用符號到底怎麼使用

2021-03-22 03:05:47 字數 5403 閱讀 7099

1樓:苑

c++中的引用符號「&」的使用方法是,型別識別符號 &引用名=目標變數名。

c++是c語言的繼承,它可進行過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。引用(reference)就是c++對c語言的重要擴充。引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。

2樓:西西哩的小馬甲

引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。

引用的宣告方法:型別識別符號 &引用名=目標變數名;

【例1】:int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名 ;

說明:(1)&在此不是求地址運算,而是起標識作用。

(2)型別識別符號是指目標變數的型別。

(3)宣告引用時,必須同時對其進行初始化。

(4)引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。 ra=1; 等價於 a=1;

(5)宣告一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。

故:對引用求地址,就是對目標變數求地址。&ra與&a相等。

(6)不能建立陣列的引用。因為陣列是一個由若干個元素所組成的集合,所以無法建立一個陣列的別名。

3樓:匿名使用者

引用是c++引入的新語言特性,是c++常用的一個重要內容之一,正確、靈活地使用引用,可以使程式簡潔、高效。

引用簡介

引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。

引用的宣告方法:型別識別符號 &引用名=目標變數名;

【例1】:int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名

說明:(1)&在此不是求地址運算,而是起標識作用。

(2)型別識別符號是指目標變數的型別。

(3)宣告引用時,必須同時對其進行初始化。

(4)引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。

ra=1; 等價於 a=1;

(5)宣告一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。故:對引用求地址,就是對目標變數求地址。

&ra與&a相等。

(6)不能建立陣列的引用。因為陣列是一個由若干個元素所組成的集合,所以無法建立一個陣列的別名。

引用應用

1、引用作為引數

引用的一個重要作用就是作為函式的引數。以前的c語言中函式引數傳遞是值傳遞,如果有大塊資料作為引數傳遞的時候,採用的方案往往是指標,因為這樣可以避免將整塊資料全部壓棧,可以提高程式的效率。但是現在(c++中)又增加了一種同樣有效率的選擇(在某些特殊情況下又是必須的選擇),就是引用。

【例2】:

此處函式的形參p1, p2都是引用

為在程式中呼叫該函式,則相應的主調函式的呼叫點處,直接以變數作為實參進行呼叫即可,而不需要實參變數有任何的特殊要求。如:對應上面定義的swap函式,相應的主調函式可寫為:

main( )

float &fn2(float r) //定義函式fn2,它以引用方式返回函式值

void main() //主函式

} (5)在另外的一些操作符中,卻千萬不能返回引用:+-*/ 四則運算子。它們不能返回引用,effective c++[1]的item23詳細的討論了這個問題。

主要原因是這四個操作符沒有side effect,因此,它們必須構造一個物件作為返回值,可選的方案包括:返回一個物件、返回一個區域性變數的引用,返回一個new分配的物件的引用、返回一個靜態物件引用。根據前面提到的引用作為返回值的三個規則,第2、3兩個方案都被否決了。

靜態物件的引用又因為((a+b) == (c+d))會永遠為true而導致錯誤。所以可選的只剩下返回一個物件了。

4、引用和多型

引用是除指標外另一個可以產生多型效果的手段。這意味著,一個基類的引用可以指向它的派生類例項。

【例7】:

class a;

class b:public a;

b b;

a &ref = b; // 用派生類物件初始化基類物件的引用

ref 只能用來訪問派生類物件中從基類繼承下來的成員,是基類引用指向派生類。如果a類中定義有虛擬函式,並且在b類中重寫了這個虛擬函式,就可以通過ref產生多型效果。

引用總結

(1)在引用的使用中,單純給某個變數取個別名是毫無意義的,引用的目的主要用於在函式引數傳遞中,解決大塊資料或物件的傳遞效率和空間不如意的問題。

(2)用引用傳遞函式的引數,能保證引數傳遞中不產生副本,提高傳遞的效率,且通過const的使用,保證了引用傳遞的安全性。

(3)引用與指標的區別是,指標通過某個指標變數指向一個物件後,對它所指向的變數間接操作。程式中使用指標,程式的可讀性差;而引用本身就是目標變數的別名,對引用的操作就是對目標變數的操作。

(4)使用引用的時機。流操作符《和》、賦值操作符=的返回值、拷貝建構函式的引數、賦值操作符=的引數、其它情況都推薦使用引用。

4樓:匿名使用者

int x=5;

int &p=x; // p指向了x用於函式的傳址引數, int test(int &m, int n)

m是傳址,n是傳值

5樓:匿名使用者

取地址符,比如有個變數a。&a就是說a在記憶體的地址

指令碼語言和程式語言的區別是什麼?

6樓:學雅思

1、指令碼語言:又被稱為擴建的語言,或者動態語言,是一種程式語言,用來控制軟體應用程式。

2、程式語言:一種計算機語言讓程式設計師能夠準確地定義計算機所需要使用的資料,並精確地定義在不同情況下所應當採取的行動。

二、特點不同

1、指令碼語言:指令碼通常以文字(如ascii)儲存,只在被呼叫時進行解釋或編譯。

2、程式語言:程式在執行時可以改變其結構,開發快速,接近自然語言,易於理解,更方便的**管理。

三、優缺點不同

1、指令碼語言:指令碼語言極大地簡化了「開發、部署、測試和除錯」的週期過程。大多數指令碼語言都能夠隨時部署,而不需要耗時的編譯/打包過程。

2、程式語言:任何程式語言的使用都需要確保編寫的程式能夠根據實際需要及時調整。因此,快速原型開發環境非常重要,在這種環境下,動態語言和相關庫的結合可以大大增強其優勢。

程式語言的分類和用途

最簡單的程式語言是什麼

7樓:源白鶴

其實最簡單的程式語言是scratch,c和vb一點也不簡單

新手應該學習什麼程式語言?

8樓:匿名使用者

1.看你的情況說明,建議還是學「易語言」或者vb

2.易語言是中文環境,背後的實質是c語言,vb呢,屬於初學者語言,好入門。

3.」不管c/vb/c++/c#學會之後不都是一樣可以做出軟體嗎?「答案是肯定的。

只要熟練掌握一門語言,都是可以做出軟體的。只不過看你的目的了,若是自己用無所謂,若是但是以此求職謀生,那需要看應聘的單位需要什麼語言了。

9樓:千鋒教育

對於初學者,想做簡單的程式設計的話,建議從c語言開始入門。c語言是最主流的基礎語言。現在軟體開發上所用的的主流的高階程式語言大多數都是以c語言為基礎演化而來的,掌握好c語言有助於學習其他的高階程式語言。

在學習過程中推薦參考譚浩強的c語言教程,非常適合入門級別的教材,在學習中還要注重實際操作,技術的提高來與源於**量的積累。

10樓:匿名使用者

如果你只是打算學來玩玩的話,易語言和vb是最簡單的了,易語言寫遊戲外掛方便。

如果你是認真的話,只推薦你學c或c ,優點有樓下說的,畢竟沒哪個公司開放軟體用易語言的吧,學易語言工作都會找不到。如果你下定了決心的話,那就把全部的精力學c和彙編,把這2個學精通。

11樓:流風

c# 簡單,文件多,開發工具方便

其他語言要麼開發工具麻煩,要麼語言麻煩

電腦程式語言怎麼設計出來的?

12樓:雲南新華電腦學校

程式語言..是人為製作的....

那麼,,怎麼製作出來的呢????

那就要從c語言講起了..c語言是祖宗了..但也不是最早的祖宗...

當年98作業系統,,就是用c語言編寫的..

後來微軟推出的程式設計工具,,也是用c++或者c語言編寫的..

那麼c語言和c++又是誰發明出來的呢????

c語言和c++都被稱為高階語言..什麼叫高階語言呢?

就是能夠被人理解的語言.就叫高階語言了...

那麼,,怎麼發明出來的呢?

其實,,當初人們和計算機打交道,,當初的計算機,,也就是最早的計算機,,有一個房子那麼大..操作他要幾十個科學家..

為什麼呢?因為計算機只能識別二進位制語言..

人們就在二進位制的基礎上,,慢慢編寫,,用了發明了組合語言這種低階語言,,畢竟彙編比二進位制容易理解很多很多..

但由於彙編學習起來很難理解..於是人們 又在他的基礎上,進一步解釋,簡化..最後發明c語言,,到c++(其實c++和c語言是完全不同的語言,,但他們都是計算機語言,不過是表達規則不同罷了),,

之後又在這個基礎上發明了什麼vb等的語言..

這些都是從低階語言一級一級發展而來的的後輩了..

如果你想編寫自己的計算機語言,,那麼你可以學習c語言..c語言功能強大,,接近計算機硬體..

如果你覺得不爽,,就學習彙編吧..這個語言比c語言更低階..更接近計算機硬體..用這種語言編寫的病毒程式,,甚至能讓計算機硬體損壞..

當今變成工具,,繁多,,但最終都是從幾個基礎語言系發展出來的..

一個是c語系..包括c++,,等

另一種是basic語系....

等..想發明自己的計算機語言學好最基礎的basic和c語言是個不錯的做法...

最好就學彙編吧..

安卓app主要用什麼程式語言的

各種程式語言間有什麼區別

程式語言學什麼好

13樓:匿名使用者

初學者首選肯定是vb6 其次vb.*** 然後是c# vb所見即所得一週

內入門沒難度 不僅能入門直接能開發小型程式 windows平臺常用的工具用vb開發都是最便捷的 非專業人士的首選 c是必學的沒得選不僅是因為它是本科必修課也因為它的基礎性地位

c中的引用符號的問題,請問C中的引用符號到底怎麼使用

這是引用的一個bai容易出du錯的地方,引用是一種複合型別zhi,呼叫上面函式的dao正確形式應內該為 xx bool變數名 呼叫容函式時,編譯器會這樣理解來傳值 bool b c bool變數名 你用常量的話,問題就來了,常量是不佔記憶體的,變數b c又怎麼和它共用一片空間呢?試試下面形式,boo...

c 中符號有什麼含義,c 中的各種符號是什麼意思?

補樓上所述,所謂 物件銷燬 意思就是當以下兩種情況發生時,物件即將被銷燬,銷燬前的最後一刻呼叫解構函式 對於分配在堆疊上的物件,如 cserial c,當離開其作用域 比如某函式裡建立的c物件,在函式姐返回前 發生物件銷燬。對於分配在堆上的物件,如cserial p new cserial 當你呼叫...

C中符號連用是什麼意思C中和同時使用是什麼意思?

引用是c 引入的新語言特性,是c 常用的一個重要內容之一,正確 靈活地使用引用,可以使程式簡潔 高效。引用簡介 引用就是某一變數 目標 的一個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引...