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