1樓:海賊王panther
一般是為了函式傳參方便,例如在交換兩個數的函式中:
(1)沒有使用引用:
void fun(int *a,int *b)int x=1,y=2;
fun(&x,&y);
(2)使用引用(此處&為引用):
void fun(int &a,int &b)函式呼叫:
int x=1,y=2;
fun(x,y);
這樣就使得函式呼叫看著更爽
2樓:Danial瓶子
既然作為C++中的乙個特性,必然有它無可替代的使用場景
場景1:別名
題主題目中舉例的確實用不上引用,但下面這種情況就需要用了
vector
>vecStr ;.... foo= "demo:" +vecStr[2 ]+" use:" +vecStr[2 ];OpenFile (vecStr[2 ]);... 這裡多次去vector中獲取同乙個值顯然效能低下 改成下面這樣雖然有優化但第一句依然有一次拷貝構造的開銷 strings= vecStr[2 ];foo ="demo:"+s +" use:"+s ;OpenFile(s );更優的方法就是採用引用,連拷貝構造都省了 const string&s =vecStr[2 ];場景2:引數傳遞 現在你有乙個物件 Foofoo ;你要把它通過引數傳遞給另乙個函式去呼叫 void Func (Foo foo); //這個定義的引數,會進行一次拷貝構造,建立乙個臨時物件傳入Func函式 //效率低下浪費資源 void Func (Foo *foo );//這是C的做法,把指標穿進去,免去呼叫拷貝建構函式建立臨時物件的消耗 //但是引入了新的問題,foo可能為NULL,因此函式裡不得不加上判斷以免出現空指標呼叫問題 void Func (const Foo& foo); //這是C++推薦做法,和指標傳遞效能一樣,但免除了空指標的風險 //作為引數傳遞時引用和const總是一起出現的 場景3:作為函式返回值 一般使用在類成員函式返回類成員變數的場景,也就是geter class Foo... }如果直接返回類物件同樣的會建立臨時物件帶來開銷,如果返回指標則呼叫者需要判斷是否為空,而返回引用則可以非常高效的直接使用 3樓: 我使用引用主要是兩個目的: 1、代替指標 如前面的同學所說,引用比指標更加直觀,a+b顯然比(*a)+(*b)更易懂 2、防止指標引起一些錯誤 引用是不可能為空的,一定確定乙個引用,它的目標是不可以被改變的如果乙個類裡面有個引用成員,它必須在構造的時候初始化,用它的時候,不必,也不能對它進行判空 4樓:王東嶽 其實是為了豐富型別,讓很多東西(尤其是傳參)看起來更科學... 比如運算子過載,你不用引用用指標就會看起來很詭異...明明過載的是T為什麼引數是T*? 小麵包 自己回答 學中文有什麼用?學英語有什麼用?學鳥語有什麼用?然後就知道答案了。你是學數學的,計算機的計算能力比你強不知道多少倍,你不學會計算機語言怎麼和計算機交流讓它幫你幹活?你不學英語,怎麼和老外溝通讓他知道你想幹什麼?兄帶,乙個人的力量是很有限的,我們需要語言來把各種人,各種力量結合在一起... C語言是可以算是高階語言的鼻祖,想學好需要很深的程式設計功底和理論基礎,學好了,你就開啟新世界的大門了,在linux的世界裡,縱橫馳騁,海闊憑魚躍,天高熱鳥飛 C語言當然有用了,而且很有用。C語言是一門通用計算機程式語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存... 江墨 大一的c語言課結束 1.你如果好好學的話,你自己可以寫乙個俄羅斯方塊,寫乙個貪吃蛇。2.你如果不僅學的不錯,還有有小夥伴學的也不差的情況下,你們可以一邊查api,一邊做乙個有Windows介面的遊戲。三國殺,鬥地主,冰與火之歌,之類小遊戲,都不難做到。3.如果,你和幾個人志同道合的小夥伴,不僅...學C語言有什麼用?
學c語言有什麼用
我想知道學c語言有什麼用?