C求解釋,「int a 3 p a 輸出p的值是什麼,是a的地址,還是等於

時間 2021-08-11 19:13:18

1樓:匿名使用者

int a=3;

*p=a; 這語法寫錯,

可能: int a=3,*p=a;

但仍是不對的, p的指標值送入3顯然也是不對的。

估計是: int a=3, * p=&a;

要把題目搞清楚。

2樓:匿名使用者

應該是int a=3;

p=&a;

輸出p的值是a的地址,&代表取地址。

int a=3;*p=a;

輸入有誤第一句完是「,」號,*p=a沒有這樣的運算表示式。

3樓:

沒見過你的賦值法,而且也不對;你執行會宕機;因為你把a的值賦給了*p;那p指的那個不知道;這是很危險的;而且你的*p沒有指明型別(在這裡是int);給你你個全的**你好好看看,再看看指標的定義吧:

#include

void main()

4樓:

p的值是是它原來指向的地址

*p的值是a的值

只是對原變數的地址進行了複製

並沒有改變指標的指向

5樓:

應該不可以這樣寫的吧,這樣是不是就是把*p指向的地址改寫,應該會報「0x0000。。。不能為write」,p=&a可以,*p=a還真沒試過。如果能改寫地址,理論的結果應該是3吧,這是我個人了理解,如果有錯請見諒。

6樓:

int a=3;*p=a;

//改為

int a=3,*p=a;

//才對

p表示a的地址,*p表示a的內容。

7樓:聽不清啊

輸出p的值是a的地址。

8樓:半半天空

這個變數定義有錯,編譯時會報錯

9樓:匿名使用者

p的值是a的地址(&a),*p才是等於3

c++中,int (*p)[2]和int a[1][2]怎麼會是一個型別呢?

10樓:匿名使用者

int b[2]是一維陣列,其地址型別是 int *

int a[1][2]是二維陣列,其地址型別是 int (*)[2]

凡是陣列指標都涉及一個概念,那就是元素對齊和列對齊。

什麼是元素對齊?

int b[2]定義了一個一維陣列,該陣列每個元素型別是int,而一個int資料佔用記憶體4位元組(32位系統),也就是說元素是有寬度的,單位是位元組。為使指標運算時可以準確定位每個元素,編譯器必須知道每個元素的位元組寬度。

比如 int *p=b;

p獲得了b的地址,p++後,由於知道元素型別是int,因此每遞增一個地址,實際上遞增了4位元組,從而實現準確定位,這就是元素對齊,而4就是int型別元素的對齊寬度。

編譯器會自動為你定義的陣列指定一個地址型別(隱式轉換)。所以你定義的陣列int b[2]的地址型別被轉換為int *。而元素個數被忽略,因為指標的目的就是指向準確的元素,編譯器不會檢查是否越界。

列對齊int a[1][2]告訴編譯器,這是個二維陣列,且每行具有2個int類元素,每行遞增位元組寬度就是4*2,即int型別的寬度與列數的乘積,等於每行總位元組數,以便於指標在遞增時可以準確定位到下一行,這就是列對齊。

因此編譯器在轉換時保留了列數和元素型別 int,[2],而行數[1]被忽略,就像一維陣列一樣忽略了行數,因為二維陣列指標運算主要就是準確定位行首地址,不會檢查行越界。因此最終被轉換成 int (*)[2],(*)[2]意思為對齊寬度為2個元素的指標,而元素型別是int,所以int (*)[2]意思為這是一個對齊寬度為2個int型別元素的指標。

所以 p=a可以,int *p=a不可以,因為型別不匹配,而int *p=b可以,因為陣列b的地址型別為int *,型別匹配 。

11樓:匿名使用者

簡單來說,如果把二維陣列看成一個一維陣列,則其每一個元素就是一個塊資料,如int a[5][3] ;若看 b[5],則b[0]就是一個有三個int元素的塊資料。

int (*p)[3]; 就是定義一個指向 有三個int元素的塊資料 的變數

所以,p=a可以賦值!

c語言程式求解釋,C語言程式,求解釋

我的看法,不一定對哦 include stdio.h struct st t 宣告結構體,長度2 2 32 void main include stdio.h 匯入標頭檔案 定義一個結構 struct st t 主函式 void main include stdio.h 包含標準的輸入輸出庫stdi...

int a 3,b 2,c 1 c 5 abprintfd n ,c 輸出為什麼是3啊?求大神指點

因為c 5永遠是 真 所以執行?後的a 而a 是後 要把a的值3賦給c後a才變為4。 單屏安 c 5這個條件為假,應該執行b 得b 1,但是最後輸出為c,c不變,應該是c 1 飛向夢想飛向未來 c語言提供一種特殊的運算子 逗號運算子。用它將兩個表示式連線起來。如 3 5,6 8 稱為逗號表示式,又稱...

求解釋一簡單c語言例子,求解釋一簡單C語言例子

公子風起 a 是先使用a的值,再自加1 b,是先自加1以後再使用b的值 a d,它是先使用a的值,a 6,並顯示了以後再自加,令a 7 b d,他是先讓b自加,此時b b 1 8,並顯示 這裡的a,b都要自加1,所以最後a 7,b 8 但在螢幕上a顯示的是先前的值,b顯示的是自加後的值,但在程式執行...