*&與*的區(qū)別

最近在學(xué)的數(shù)據(jù)結(jié)構(gòu),總是對(duì)于&與的理解不夠

Answer1:
結(jié)構(gòu)體類(lèi)型為SqList …… void InitList(SqList *&q){……}/&的作用 {SqList *q; …… InitList(q); }
&的意思是對(duì)線(xiàn)性表(你是在學(xué)數(shù)據(jù)結(jié)構(gòu)吧……)直接進(jìn)行操作,否則的話(huà)是相當(dāng)于把原來(lái)的表復(fù)制一份,再對(duì)復(fù)制品操作。初始化的話(huà)肯定要對(duì)原表操作啦,要加&的。

Answer2:

L是SqList類(lèi)型,然后*是指L是個(gè)針肯定沒(méi)錯(cuò)了,是這個(gè)&是引用或者叫做別名。
你大概是不知道這個(gè)&吧?
函數(shù)調(diào)用的時(shí)候是 值傳遞,所以你在函數(shù)中修改了這個(gè)指針的時(shí)候,不能把結(jié)果帶回,相當(dāng)于一個(gè)局部的操作,只在那個(gè)函數(shù)中有意義。也就是說(shuō),當(dāng)函數(shù)返回以后,原先的指針還是指向原先的那片內(nèi)存空間。因而不能通過(guò)傳遞指針修改指針的指向。
這里的這個(gè)引用,是指這個(gè)SqList類(lèi)型的指針L的引用。也就是說(shuō)在函數(shù)中可以修改 真正的 指針L指向的內(nèi)存空間。這才是真正的修改了L。

這里引入了一個(gè)新的概念,引用和指針的區(qū)別

1.C語(yǔ)言中并不存在引用
2.&在C語(yǔ)言中表示取地址符號(hào),在C++中表示的是引用
例子如下:
類(lèi)型標(biāo)識(shí)符 &引用名=目標(biāo)變量名

引用必須初始化,并且只能且需要指定一個(gè)數(shù)據(jù)對(duì)象
使用別名操作就必定操作的是其自身,所以初始化銷(xiāo)毀等操作務(wù)必牢記需要這樣。

而用個(gè)指針,會(huì)復(fù)制該表,操作復(fù)制后的另一個(gè)表,原表不變

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,251評(píng)論 0 38
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,663評(píng)論 1 32
  • 前幾日的時(shí)候,有朋友問(wèn)我這么一個(gè)問(wèn)題: 這兩句究竟有什么分別。原本關(guān)于這個(gè)東西的博客和文章已經(jīng)不勝枚舉,不過(guò)我朋友...
    flycash閱讀 1,525評(píng)論 0 1
  • 第5章 引用類(lèi)型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類(lèi)型 使用基本類(lèi)型...
    大學(xué)一百閱讀 3,679評(píng)論 0 4
  • 題目類(lèi)型 a.C++與C差異(1-18) 1.C和C++中struct有什么區(qū)別? C沒(méi)有Protection行為...
    阿面a閱讀 7,891評(píng)論 0 10

友情鏈接更多精彩內(nèi)容