很多書籍中都提到了左值和右值的概念,但是對其解釋卻讓人費解,下面我來簡單解釋一下。
簡單地說,左值就是在賦值符號「=」左邊的變數,右值自然是賦值符號右邊的值了。例如:m=n;m是左值,n是右值,這兩者在c語言中有什麼要求或者說必須滿足什麼條件呢?
右值:如上面的例子,n是右值,也就是說n代表的位址儲存的內容,具體的內容由具體的程式決定。
左值:再如上例,m是左值,即m代表這個位址,這個位址具體在哪,也由編譯器決定。
c語言中的左值必須是「可修改的左值」,即左值代表的位址上的內容一定是可以修改的,對於唯讀變數,我們是無法進行賦值運算的。
C語言指標的左值與右值
為什麼要用指標?因為計算機是 儲存式執行 不論 指令還是資料,都在記憶體中存放著。指標,首先是記憶體中的乙個位址 同時根據使用目的,有些不同的屬性 目的1.讀 寫乙個變數 物件 這時指標是乙個變數 物件 的起始位址,主要屬性是 資料型別 用於解析這片記憶體中的資料是什麼 常見用法 1.1在呼叫函式時...
C語言左值和右值
左值可以標記乙個儲存的位置,右值可以指定乙個值。l value中的l指的是location,表示可定址。the l in lvalue can be though of as location r value中的r指的是read,表示可讀。the r in rvalue can be thought...
C語言中的左值右值
一般說來出現在 左邊的是左值,出現在 右邊的是右值,左值是可改變的值,出現在賦值號左邊的符號所代表的位址上的內容一定是可以被修改的,唯讀變數是不能做左值的。i 就可以作為左值,而 i 卻不能作為左值。這也是為什麼 i 合法,而 i 卻不合法。變數 i i為左值時 編譯器認為 i 代表的是 i 的位址...