一般的教材上講到引用時,都是說「引用是物件的乙個別名」。我認為這種定義是不清晰的,不利於初學者理解引用。至少我自己曾經被這個定義困擾了一段時間。到底什麼是「別名」?實際上,引用的實質是位於******位址上的乙個***x型別的物件。比如教科書上常用的例子
int a = 5; //不妨假設編譯器將a分配到0x400000
int &b = a;
這裡面b的準確意義就是,放在0x400000位址上的乙個int型別物件。這裡面包括了兩重含義,首先b是乙個int型別物件,因此他的使用完全與int型別物件一樣。另外這個int型別物件的位址是0x400000,因此從底層來看,它具有指標的一些特性,無論你怎樣傳遞,他都代表放在0x400000的那個int.
在c++中,引用全部是const型別,定義之後不可更改。實際上「引用」對目標**來說是不存在的,因為對於編譯器來說,使用上例中的b就是使用0x400000位址的那個int.引用一經定義,就不會指向別的位址,也不會指向別的型別,因此編譯器不會專門開闢空間儲存這個引用,而是將傳送引用的地方替換為真正的位址,接收引用的地方則替換為接受指標。
愛真的很痛
不知道什麼時候開始喜歡上了他,早上他跟我說 一大早我以前的女友打 過來告訴我說,她如果考上公務員就和我在一起,沒有就不和我在一起,她說她想我和在一起,所以她現在都很努力的看書 為什麼我的心那樣的痛,他一說完這句話,我的眼淚就流了出來。他是不是值得我去選擇呢?我自己也不知道,我頭好痛,我好辛苦。他也跟...
我真的很痛苦
本人一小菜鳥,剛畢業就進了一家的小軟體公司,進去沒有多久,就被外包出去。外包出去沒有什麼,關鍵是公司和甲方說我有兩年的開發經驗。這句話真的讓我非常的受傷。一開始還好,漸漸的他們發現我這個開發有兩年的人不知道東西還不少,估計就都開始鄙視我。這點我可以很明顯的感覺到,這點讓我真的很痛苦。雖然我也告訴我自...
linux真的很安全麼?
寫這篇文章是因為看到了cnbeta上最近接二連三地出現類似這篇的文章。雖然我還是認為此文的作者多少還是有點標題黨,因為那個 a 其實可以是任何東西,這樣就說是 乙個命令 也太無聊了點。但是我在公司的rhel4的伺服器上試驗了之後,確實可以非法提公升許可權。不免有點擔憂。於是我順藤摸瓜,在那個提供ha...