為什麼C語言指標初始化左邊是值,右邊是位址?

時間 2021-06-03 00:24:36

1樓:一直流浪

左邊是變數名,右邊必須賦值位址,

c =5; int *a=&c;

相當於int *a;a=&c;

int *是資料型別,a是變數,一定要分開,先分清變數和資料型別你說的printf(「%d」,*a);

其實是指標的乙個操作,取值操作,拿到指標a那片儲存空間的資料,即c的位址

2樓:追遠·J

int *a = &n;是

int *a;

a = &n;

的簡寫,而不是

int *a;

*a = &n;

等你學過複雜型別的宣告,就會坦然了

3樓:「已登出」

我沒看懂為啥說左邊的*a是乙個值。可能是因為可以用*a表示a所指向的變數的值?但這個*a和int *a不是一回事。

你可以把int *a看作是設了乙個int*型別的變數a,就和int a是設了乙個int型的變數a一樣。

4樓:Forever藍焰

右邊是個位址,但位址也可以作為值啊,左邊是定義了乙個指標變數,它不是乙個值,當然直接用*a的時候是取a這個指標所指向的位址中的值

5樓:kite丶

emmmm

你可以理解為這樣

int i;

int* pi=&i;

當然,右邊肯定是個位址。

左邊,是個指標形的變數儲存值,首先它是個變數,所以它儲存值,其次才是指標

這個值你可以理解為他儲存的值是乙個變數的位址。

c 臨時物件初始化指標和引用?

楚軒 1.因為你開啟了VS2013的非標準擴充套件.你把警告等級W4開了就知道了.這是微軟搞得 2.一樣是非標準擴充套件nonstandard extension used class rvalue used as lvalue 邱昊宇 出現這種疑問時,可以嘗試換個編譯器 比如 g main.cpp...

C語言 關於C裡面陣列批量初始化

蛋蛋的蛋 int a 1000 補充一下,類似的方式可以讓前500個元素等於1,後500個等於0,手機打字,不方便,有心人自己嘗試吧, 向晨 c標準庫有個limits.h的標頭檔案,裡面有你所使用機器的int char等型別變數的位元組長度和大小限制相關的巨集,可以用這些巨集來知道乙個int對應幾個...

C語言中字元陣列用 初始化?

Elias Wang 我們大致先把概念理清一下 字元陣列 初始化 在宣告變數的同時,為變數分配儲存空間,並初始化資料34 foo string literal 形式,初始化變數位址39 f o o 0 array 形式 賦值 變數已經被宣告,再對變數已有的儲存空間進行操作34 foo string ...