引用對(duì)象采用類(lèi)型名加上&符號(hào)和名稱(chēng)的方式進(jìn)行定義。例如:(int &test;),這里我們就定義了一個(gè)int類(lèi)型的名為test 的引用,但是int &test;這樣的方式是不能夠被編譯成功的,因?yàn)橐玫亩x必須同時(shí)給應(yīng)用進(jìn)行賦值操作,這里的賦值并不是說(shuō)把變量的值傳遞給引用,而是把引用指向變量,寫(xiě)成這樣就對(duì)了:(int &test=變量名;)。 #include <iostream> 觀察并編譯運(yùn)行上面的代碼你會(huì)發(fā)現(xiàn)&a和&test的地址顯示是相同的,a和test的值顯示也是一樣的! 結(jié)合前一個(gè)教程的內(nèi)容我們來(lái)說(shuō)一下const引用的相關(guān)內(nèi)容,這里要特別注意,和前一個(gè)教程一樣帶const修飾的引用同樣也容易混淆概念! #include <iostream> 上面的代碼足夠說(shuō)明問(wèn)題了,這就是const修飾帶來(lái)的好處,但是聰明的人會(huì)在輸出的時(shí)候發(fā)現(xiàn)一個(gè)問(wèn)題,就是a和test的值的輸出不同,按照最先說(shuō)的道理應(yīng)該可以改變a的值呀,為什么在這里卻有沒(méi)有能夠改變呢? int a=10; 這樣的一段代碼在編譯器認(rèn)為卻是下面的方式進(jìn)行的 int a=10; 這里其實(shí)是把a(bǔ)的值賦給了一個(gè)臨時(shí)temp 變量,而后test獲得的卻是temp+12.f 改變的是temp而不是a,所以就出現(xiàn)了a和test顯示的值不同的情況,這里要特別注意,這是一個(gè)很容易混淆的地方,在編寫(xiě)程序的時(shí)候要特別仔細(xì),以免出現(xiàn)了問(wèn)題卻檢查不出為什么 |
溫馨提示:喜歡本站的話(huà),請(qǐng)收藏一下本站!