C/C++編程筆記:C語(yǔ)言中的左值和右值,帶你快速弄懂它!

L值:?“ l值”是指標(biāo)識(shí)對(duì)象的內(nèi)存位置。l值可能顯示為賦值運(yùn)算符(=)的左側(cè)或右側(cè)。l值通常表示為標(biāo)識(shí)符。
涉及可修改位置的表達(dá)式稱為“可修改l值”。可修改的左值不能具有數(shù)組類型,不完整類型或具有const屬性的類型。為了使結(jié)構(gòu)和聯(lián)合成為可修改的左值,它們不得具有帶有const屬性的任何成員。標(biāo)識(shí)符的名稱表示存儲(chǔ)位置,而變量的值是存儲(chǔ)在該位置的值。
如果標(biāo)識(shí)符引用一個(gè)內(nèi)存位置并且其類型是算術(shù),結(jié)構(gòu),聯(lián)合或指針,則它是可修改的左值。例如,如果ptr是指向存儲(chǔ)區(qū)域的指針,則* ptr是可修改的l值,用于指定ptr指向的存儲(chǔ)區(qū)域。

在C語(yǔ)言中,該概念被重命名為“定位器值”,并引用了定位(指定)對(duì)象的表達(dá)式。l值是以下值之一:
任何類型的變量的名稱,即整數(shù),浮點(diǎn),指針,結(jié)構(gòu)或聯(lián)合類型的標(biāo)識(shí)符。
下標(biāo)([])表達(dá)式,其結(jié)果不等于數(shù)組。
不引用數(shù)組的一元間接(*)表達(dá)式
括號(hào)中的l值表達(dá)式。
甲常量對(duì)象(一個(gè)不可修改1-值)。
如果它不是函數(shù)指針,則通過指針進(jìn)行間接尋址的結(jié)果。
通過指針(->或。)進(jìn)行成員訪問的結(jié)果

“ R值:r值”是指存儲(chǔ)在內(nèi)存中某個(gè)地址的數(shù)據(jù)值。r值是無(wú)法為其分配值的表達(dá)式,這意味著r值可以出現(xiàn)在賦值運(yùn)算符(=)的右側(cè),但不能出現(xiàn)在左側(cè)。

注意:一元&(address-of)運(yùn)算符需要一個(gè)左值作為其操作數(shù)。也就是說(shuō),僅當(dāng)n是左值時(shí),&n是有效表達(dá)式。因此,&12之類的表達(dá)式是錯(cuò)誤的。同樣,12沒有引用對(duì)象,因此它是不可尋址的。例如,

記住助記符,即左值可以出現(xiàn)在賦值運(yùn)算符的左而右值可以在右邊出現(xiàn)。
希望對(duì)你有幫助!
另外如果你想更好的提升你的編程能力,學(xué)好C語(yǔ)言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~

UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
編程學(xué)習(xí)書籍分享:

編程學(xué)習(xí)視頻分享:
