c語言輸入10個(gè)整數(shù)求平均值 左值,右值的問題,還有返回左值與右值的區(qū)別,使用引用、const對(duì)左值,右值的影響?
左值,右值的問題,還有返回左值與右值的區(qū)別,使用引用、const對(duì)左值,右值的影響?左值用于存儲(chǔ)數(shù)據(jù),因此它必須是可以存儲(chǔ)數(shù)據(jù)的內(nèi)存單元,而不是常量或立即數(shù)。正確的值是data,它可以是存儲(chǔ)在數(shù)據(jù)存儲(chǔ)
左值,右值的問題,還有返回左值與右值的區(qū)別,使用引用、const對(duì)左值,右值的影響?
左值用于存儲(chǔ)數(shù)據(jù),因此它必須是可以存儲(chǔ)數(shù)據(jù)的內(nèi)存單元,而不是常量或立即數(shù)。正確的值是data,它可以是存儲(chǔ)在數(shù)據(jù)存儲(chǔ)單元中的數(shù)據(jù)、常量或立即數(shù)。通常,函數(shù)的返回值只能用作正確的值。如果函數(shù)的返回值被聲明為引用,那么這樣的函數(shù)也可以是左手函數(shù)。
c 中返回值是const引用為什么不能當(dāng)左值運(yùn)算?
Const表示它是一個(gè)常量。舒適時(shí)固定,不能做左值操作。它限制變量不被更改。在一定程度上,const的使用可以提高程序的安全性和可靠性
左值是指可以取地址的表達(dá)式。簡(jiǎn)言之,等號(hào)左邊可以出現(xiàn)的是左值。例如:另外,也可以有不是變量的左值:在這里,getref()返回一個(gè)全局變量的引用,該全局變量的值有一個(gè)固定的位置,因此它是一個(gè)左值。右值是指沒有名稱的值,它只出現(xiàn)在表達(dá)式的計(jì)算過程中,即在等號(hào)的右邊。例如:getname()返回函數(shù)中構(gòu)造的字符串。你可以把它的值賦給一個(gè)變量,但它是一個(gè)臨時(shí)對(duì)象,我們不知道它的值在哪里。因此,getname()是一個(gè)正確的值。什么是左值和右值?什么是正確的價(jià)值觀?c11中新引入了右值引用。它是一種只與正確價(jià)值相結(jié)合的參照。它不同于用&;表示的左值引用。與左值引用一樣,它也可以是常量或非常量,但在實(shí)際應(yīng)用中我們不會(huì)使用常量的右值引用(您可以想想原因)。讓我們看一些例子:從這些例子中,我們可以看到const的左值引用可以綁定到右值,non-const的左值引用不能綁定到右值,右值引用可以綁定到右值。那么,正確的價(jià)值參考如何幫助我們解決問題呢?讓我們繼續(xù)討論右值引用作為函數(shù)參數(shù)的行為。假設(shè)我有以下兩個(gè)函數(shù):第一個(gè)printreference函數(shù)將常量左值引用作為參數(shù)。從前面的例子中,我們知道它可以同時(shí)接受左值和右值。但是,當(dāng)右值引用的第二個(gè)printreference過載時(shí),右值將首先綁定到第二個(gè)printreference。這可以通過以下代碼進(jìn)行驗(yàn)證:輸出為: