亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言左值與右值的概念是什么

發布時間:2022-03-17 14:02:20 來源:億速云 閱讀:244 作者:iii 欄目:大數據

這篇文章主要講解了“c語言左值與右值的概念是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“c語言左值與右值的概念是什么”吧!

左值與右值

問題闡述

賦值表達式中可以分為左值(lvaule)和右值(rvaule),那么什么是左值和右值?數組名做為左右值時又具有怎樣的意義?

lvalue估計來源于left value。在賦值語句中lvalue = rvalue;位置處于左邊。就是可以修改的值。

rvalue估計來源于right value。處于賦值語句右邊,是只讀的不可修改的值。

左值是指可以被賦值的表達式,也就是賦值符號左側的表達式。由此可以知道,右值就是指出現在賦值符右側的表達式。每一個賦值語句都有一個左值和一個右值。

(1)左值必須是變量。左值必須是內存中一個可存儲的變量,而不能是一個常量或

者表達式。例如,下面是正確的左值

int i;

int *p;

i=5;

*p=3;

i是一個整型變量,在內存中有一個對應的存儲位置。因此,語句i=5中,i可以作為一個左值。在語句*p=3中,*p表示p指向的內存區域,因此,*p是一個左值。而下面幾個例子就不是左值。

#define PRICE 10

int i,j;

PRICE=20;

(i+j)=10;

上面的代碼中, PRICE是一個常量值,其值不能改變,因為常量不表示內存中可存儲的位置;而(i+j)是一個表達式,也不能表示內存中可存儲的一個位置。所以這兩個賦值語句的左值都是不正確的

(2)右值可以是常量或者表達式,例如

#define PRICE 10

int i,j;

int *p:

i=5;

j=i+5

*p=PRICE;

(3)賦值語句必須有一個左值和一個右值。一條賦值語句必須有一個左值和一個右值,否則將無法通過編譯。

數組名作為左右值的意義:

當數組名作為左值時,是錯誤的。編譯器會認為數組名作為左值代表的意思是數組的首元素的首地址,但是這個地址開始的一塊內存是一個整體,只能訪問數組中某個元素,而無法訪問整個數組,所以可以把a[3]當左值,而不能把a當左值。

數組名代表數組的首地址,所以數組名作為右值時將數組的首地址賦給賦值符左側的變量。

綜上,數組名不可以作為左值,而數組中的元素是可以作為左值的。因為數組中的每個元素也可以被看作是一個變量,其在內存中有對應的存儲位置。

感謝各位的閱讀,以上就是“c語言左值與右值的概念是什么”的內容了,經過本文的學習后,相信大家對c語言左值與右值的概念是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方城县| 临颍县| 西峡县| 西安市| 堆龙德庆县| 师宗县| 达孜县| 宜丰县| 洮南市| 榆中县| 漳浦县| 张家川| 宝坻区| 神农架林区| 镇宁| 永吉县| 涟水县| 工布江达县| 东乡| 类乌齐县| 东丽区| 灵丘县| 科技| 台中市| 华坪县| 鹰潭市| 呼伦贝尔市| 全南县| 温宿县| 会理县| 永安市| 兴海县| 汝南县| 罗平县| 色达县| 新疆| 梁山县| 本溪市| 神木县| 滨海县| 饶平县|