C語言指標題

時間 2022-04-11 16:55:11

1樓:匿名使用者

首先要明白a本身表示乙個位址,*p =a 就把陣列的位址賦給了p指標。這個時候,a和p是指向同乙個位址(陣列的位址,即第乙個元素的位址)的。

a選項 *p 表示a的第乙個元素的值。 0+4 = 4 。這個是答案。

b選項 *(p+4) 表示a的第四個元素的值。 4.這個也是答案c選項 *p+=3 表示a的第乙個元素的值加3。 3d選項 p這個16位址值+3。 顯然不是

2樓:其木揚揚

a項:*p儲存的是a[0],所以 a 對;

b項: p沒加間接運算子*所以儲存的是第乙個元素的位址,所以p+4代表第4個元素的位址,加上*就是引用第4個元素,所以b對;

c項:表示的是第三個元素,所以c錯;

d項:由於d項的p + 3前面沒加 * ,所以代表的是第3個元素的位址,跟四個元

素不沾邊,所以d錯。

所以正確的是a、b,錯誤的是c、d。

3樓:前端報錯

a:*p的值是a[0]的值;

b:p指向a[0],向後移4個元素,*p指向a[4];

4樓:黑色幽默

選a和b

a *p+4=a[0]+4=4 所以是正確的b *(p+4)相當於a[4] 所以是正確的c 相當於*p=*p+3=3 所以是錯的

d p+3 是乙個位址 顧錯誤

5樓:匿名使用者

我認為三樓說的對,我再補充一下,第三個和第四個。

c. *p+=3 其實就是*p=*p+3 結果是3

d. p+3 指向陣列第1+3=4個元素,也是3

6樓:笑十三螂

是不是多選呀?a和b吧

c是3好像

d是位址數,不確定

是從0開始,所以本來表示a[0]的加了4後表示a[4]也就是第五個元素

7樓:

這個 應該選b吧 。a和*p表示位址,p表示數值。b是表示指向p+4

的位址,就是4

8樓:匿名使用者

ab對,p本來指向a[0]=0,0+4=4(p+4)讓p後移4位,0+4=4,所以p+4指向a[4]c.*p=0,0+3=3

d.p+3是乙個位址不是值

C語言指標程式設計題,求助大佬,C語言程式設計題,求助大佬,謝謝!

函式catstr void catstr char pstr1,char pstr2 while pstr1 pstr1 while pstr2 pstr1 pstr2 pstr1 0 結果 鹹弘懿 include include define maxs 100 char str cat char ...

C語言指標,c語言指標詳解

結果肯定是a撒。你在函式point char p 呼叫後沒有返回 p的值 原因是你的函式就沒有return 語句,且 形參的值不能傳遞給實參 在point函式中改變的只是指標的值,指標指向的內容不受影響。可以這樣修改一下 void point char p 不知。樓上說的。你懂了沒。就是p 3 這句...

關於c指標的題,C語言關於指標的一道題。

漫遊靜心 1 定義一個int型二維陣列,會在記憶體中分配一段連續的空間,存放這些數。按照你的定義,是8個數,一個int型是4個位元組,所以你定義的陣列一共佔用了32個位元組,這32個位元組的首地址為 0x0064fd38。2 陣列名是這32位元組的首地址,是一個指標,但是可以理解為被const修飾的...