1樓:匿名使用者
這個定義應該是c++裡面的引用的定義。
因為c裡面&只是一個取地址的符號。而且c裡面不會在生命的時候去去一個變數的地址
sqlist *l 是宣告一個指標
sqlist &l 是宣告一個引用
指標與引用的區別在於
(1)引用總是指向一個物件,沒有所謂的 null reference .所有當有可能指向一個物件也由可能不指向物件則必須使用 指標.
由於c++ 要求 reference 總是指向一個物件所以 reference要求有初值.
string & rs = string1;
由於沒有所謂的 null reference 所以所以在使用前不需要進行測試其是否有值.,而使用指標則需要測試其的有效性.
(2)指標可以被重新賦值而reference則總是指向最初或地的物件.
(3)必須使用reference的場合. operator 操作符 由於該操作符很特別地必須返回 [能夠被當做assignment 賦值物件] 的東西,所以需要給他返回一個 reference.
(4)其實引用在函式的引數中使用很經常.
void get***(const int& a) //這樣使用了引用有可以保證不修改被引用的值
2樓:三隻熊
一個是指標,一個是引用,兩者最大的卻別就是一個分配記憶體,另一個不分配,指標要分配記憶體存放變數的地址,引用就是變數的一個別名,就和資料庫中的同義詞一樣。
3樓:匿名使用者
sqlist 是一個結構體
sqlist *l 表示定義了一個指向sqlist型別的指標&l 表示l的指標
l->num這兒的l定義為:sqlist *l,而l.num這兒的l定義為struct sqlist l。
當l定義為sqlist *l時,l->num等同於(*l).num,只是前者書寫更方便
C語言中形參與實參怎麼傳遞,c語言中形參和實參的區別?
我簡單描述一下 c語言傳遞引數機構是這樣的 非指標類的資料傳遞引數時傳數值,指標類資料傳遞引數時傳地址 這裡陣列名也算指標 比如int max int a,int b 這時候如果呼叫這個函式max x1,x2 僅僅將x1和x2的數值傳遞給函式max,a與x1佔有不同的記憶體區域 int max in...
形參和實參的區別是什麼,c語言中形參和實參是什麼意思?有什麼區別?
淳于長順印黛 實參是用來填充形參的。當函式被呼叫時,形參列在函式名後面的括號裡。執行函式呼叫時,實參被傳遞給形參。1 形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。2 實參可以是常量 ...
c語言問題求高手解答,C語言問題求高手解答
幫你寫好了,這裡幫你編譯執行了,沒任何問題,不放心的話你自己試試struct staff int main void if head null puts 沒有任何資料,抱歉!else current head while current null current head while current...