求c語言高手解釋形參sqlistlsqlistl的區別

2022-02-06 11:13:50 字數 1544 閱讀 1497

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,只是前者書寫更方便

資料結構順序表 函式定義時sqist l和 sqlist &l有什麼區別?

4樓:匿名使用者

&引用符號,相當於你的名字「永恆sasori_」。

做個比喻吧,如果要把「你」扔進水庫中,扔sqlist &l相當於把「永恆sasori_」扔進去,在裡面的他出事了那麼相當於你出事了。而扔sqlist l相當於先克隆一個你,然後把另外一個「永恆sasori_」扔進去,至於進去後發生了什麼與你無關。^_^

5樓:匿名使用者

前者是定義,後者是引用

資料結構裡&引用符的意思。順序表初始化函式裡形參是sqlist &l,而實參是sqlist la,

6樓:看不見淚痕

對形參賦值就跟普通變數的賦值一樣,sqlist &l = la,這下你明白了吧,l 就是 la 的引用,對 l 的任何操作就相當於直接操作了 la

7樓:月孤寒

&是地址引用,la的記憶體地址給了形參。

8樓:扈懷煒

就是la本身,引用時不傳遞的

c語言題目求詳細解釋,C語言題目,求詳細解釋

在c語言裡,結構體在記憶體中存放時要遵從這樣的規則 1 每個成員的相對於整個結構體起始地址的偏移值必須是該成員長度的整數倍 2 整個結構體的長度必須是最長的元素的整數倍 現在看整體是24,是最長元素8的倍數 符合規則2 於是長度就是24 就是選項d 如果換個次序變成下面這樣,就是32個位元組了 因為...

怎樣定義C語言函式中的引數 實參 形參

int fun int x,int y x,y就是 du形zhi 參dao main include void add int x,int y 定義函式時候,函自數的參bai數就是形參,void main c語言中什麼是形參,什麼是實參?形參 全稱為 形式引數 是在定義函式名和函式體的時候使用的引數...

c語言試卷 求高手給答案,C語言試卷 求高手給答案

內容來自使用者 暮葉晴藍 一 選擇題 每題2分,共40分 1 c語言源程式的基本單位是 a.程式行b.語句c.函式d.字元 2 c語言規定 在一個源程式中,main函式的位置 a.必須在最開始 b.必須在系統呼叫的庫函式的後面c.可以任意 d.必須在最後 3 在下列字元列中,合法的識別符號是 a.p...