C語言指標的左值與右值

2021-10-09 15:35:49 字數 659 閱讀 7900

為什麼要用指標? 因為計算機是"儲存式執行", 不論**指令還是資料, 都在記憶體中存放著。

★指標, 首先是記憶體中的乙個位址;同時根據使用目的, 有些不同的屬性

目的1. 讀/寫乙個變數(物件), 這時指標是乙個變數(物件)的起始位址,

主要屬性是 資料型別(用於解析這片記憶體中的資料是什麼)

常見用法:1.1在呼叫函式時, 向函式中傳遞某個變數的引用;實參是右值指標, 形參是左值指標

1.2存放新申請的記憶體區域的首位址, 常用於結構或陣列等物件的建立(在堆記憶體中);這是左值指標    

1.3用於讀/寫某個陣列成員(資料型別有可能是"子陣列"); 根據不同情況, 它可能是左值 , 也可以是右值

目的2: 指向鍊錶中相鄰的那個成員, 構成單向鍊錶或雙向鍊錶

主要屬性還是 資料型別

由於是左值, 這裡的指標一定是指標變數

目的3:指向函式**的起始位址, 用於呼叫函式

有函式原型這種屬性

根據不同情況, 它可能是左值 , 也可以是右值

★指標變數, 首先是乙個變數, 其次才是指標變數

只要是變數, 都是左值, 都在占用一定數量的記憶體, 都有自己的首位址(指標)

所以指標變數也可以說是左值指標

常見的右值指標: 表示式中的陣列名,函式名, &變數名, malloc()等

c 左值與右值

在學c 過程中,左值與右值的概念是一道繞不過去的坎,因此就想寫一些自己的理解。左值 lvalue 與右值 rvalue 是c 語法中的術語 terms 第一次看到這兩個詞的時候,很自然就認為在乙個表示式中,在等號左邊的就是左值,在等號右邊的就是右值。如果你們第一次看到這兩個詞也這麼認為的話,那我要恭...

C 左值與右值

左值 lvalue 和右值 rvalue 是 c c 中乙個比較晦澀基礎的概念,不少寫了很久c c 的人甚至沒有聽過這個名字,但這個概念到了 c 11 後卻變得十分重要,它們是理解 move forward 等新語義的基礎。左值與右值這兩概念是從 c 中傳承而來的,在 c 中,左值指的是既能夠出現在...

C 左值與右值

乙個很常見的誤區就是左值時等號左邊的值,右值時等號右邊的值 含義 左值是指表示式結束後依然存在的持久化物件 右值是指表示式結束時就不再存在的臨時物件 左值是儲存單元內的值,即是有實際儲存位址的 右值則不是儲存單元內的值,比如它可能是暫存器內的值也可能是立即數。下圖取自乙個知乎的回答 看幾個例子 in...