C語言基本概念之左值

2021-09-24 02:47:16 字數 861 閱讀 5820

我相信接觸過c語言的人都聽過"左值"這個概念,不過到底什麼是左值呢?其實能說清楚的人其實並不多,這其中就包括很多使用c語言多年的所謂老鳥。

我聽的最多的解釋是:「左值就是可以出現在賦值運算子左邊的東西」。

根據這個定義,我提出我的幾個疑惑:

(1)那麼我們看如下**片段:

int x, y;

x = 100;

y = x;

這裡變數x既可以出現在賦值運算子的左邊,又可以出現在賦值運算子的右邊,難不成變數x既是左值,又是右值? 

還有一點,在c/c++中陣列名不能出現在賦值運算子的左邊,那麼陣列名是右值咯?

帶著這些疑惑,讓我們試圖從c標準中找到答案。注意,這篇博文僅限於c語言討論,因為c++標準對這塊知識點進行了諸多擴充套件,等將來有機會再另起一篇博文闡述c++中的左值知識點。

想明白什麼是左值,首先需要了解下什麼是表示式。

《理解c和c++中的左值和右值》

《value categories》

《value (computer science)》(wikipedia)

《lvalues and rvalues》

《non-modifiable lvalues》

《what are lvalue and rvalue in c?》

《c string literals are lvalues》

《understanding the meaning of lvalues and rvalues in c++》

《值 (電腦科學)》(wikipedia)

《c/c++左值 右值討論》《c/c++左值性精髓》

《'lvalue' considered harmful》

C語言 基本概念

c語言的基本概念 1.格式 型別修飾符 變數名初始值.2.定義變數規則 1 不能以數字開頭.2 由下劃線,字母,美元符,數字組成.3 變數名不能重複.4 不要以拼音命名,特別是拼音簡寫.5 駝峰結構 駝峰命名法.6 不能與系統保留字重名.3.編寫 規範 操作符兩個由空格,逗號後面乙個空格.練習1 定...

C語言基本概念

bit 中文名稱是位,音譯 位元 是用以描述電腦資料量的最小單位。二進位制數系統中,每個0或 1就是乙個位 bit bit縮寫為b。位元組 byte 是計算機 資訊科技 用於計量儲存容量和傳輸容量的一種計量單位,乙個位元組等於8位 二進位制數 byte 縮寫為b 1kb 1024 bytes 102...

C 語言基本概念

類 具有同種屬性的物件稱為類,是個抽象的概念。比如說 汽車 人 狗 神 物件 日常生活中的所有東西都是物件,是類的例項化。比如說 推土車是汽車的例項化 姚明是人的例項化 小白 狗的名字 是狗的例項化 二郎神是神的例項化 屬性 用來描述具體某個物件的特徵的是屬性,是靜態的。比如 姚明身高2.6公尺多 ...