我相信有很多剛學(xué)完C,再學(xué)C++的人都會(huì)有個(gè)疑惑,引用是干嘛的,為什么不用指針?
首先,引用 跟 指針 在作用上沒(méi)有太多區(qū)別,作用都是 當(dāng)遇到較大的 對(duì)象(變量)作為函數(shù)的 形參 傳遞時(shí),用引用或指針可以節(jié)省內(nèi)存的開(kāi)銷(xiāo),因?yàn)樗幌癜?#20540;傳遞那樣,
額外要?jiǎng)?chuàng)建臨時(shí)變量。
既然這樣,那為什么C++要用引用呢?
引用是一段內(nèi)存的別名,引用的大小跟所代表的變量的大小是一樣的,而指針?biāo)拇笮t永遠(yuǎn)都是4個(gè)字節(jié)。
而且 引用 的風(fēng)格更符合C++面向?qū)ο蟮乃枷搿V羔樣?-> 來(lái)使用對(duì)象下的成員。而引用則用 . 來(lái)使用對(duì)象下的成員。
struct a zje; struct a &b = zje; struct a *c = &zje; //b.a 和 c->a 是一樣的,都是使用zje下的a成員。 引用和指針的不同:(1)指針在定義的時(shí)候可以不初始化,但引用在定義的時(shí)候必須初始化。
(2)指針可以為空,引用不能為空。
(3)指針可以改變他的指向的對(duì)象,但引用不可以。
(4)有const 指針,沒(méi)有 const 引用。
(5)指針有多級(jí),如 int **ptr,但引用只有一級(jí),不存在 int &&a;
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注