c語言指標的基礎問題,請求解答和過程

2021-05-02 08:51:36 字數 1103 閱讀 4868

1樓:匿名使用者

迴圈p[0]=&a[0];

p[1]=&a[3];

p[2]=&a[6];

p[3]=&a[9];

即p[3]指向了a[9]即為10

之後p[3][2]為10向後面數2個即為12,因為p[3][0]=10,p[3][1]=11,p[3][2=12,

p[3]是個指標,就是個地址啦,10的首地址int *p[4]是個指標陣列 它每個元素都是一個指向int的指標可能說的不太明白 那裡沒懂在問吧

2樓:

首先p是一個指標陣列(即這個陣列裡存放的是指標)

根據for迴圈得p[3]=&a[9];所以*p[3]=10,即p[3][0]=a[9];往後數兩個得p[3][2]=12

3樓:

p[0]=&a[0]-->p[0]=1

p[1]=&a[3]-->p[1]=4

p[2]=&a[6]-->p[2]=7

p[3]=&a[9]-->p[3]=10

關鍵是你沒有定義p是二維陣列,所以如果硬是要看成二維輸出,它只會預設,既然p[3][0]=10,那麼p[3][1]=11,p[3][2]=12;

就是這個,應該夠詳細了吧!

4樓:阿鸞

迴圈4次,i=0、1、2、3

i= 0 ;

p[0]=&a[0]; a[0]=1

i= 1 ;

p[1]=&a[3]; a[3]=4

i= 2 ;

p[2]=&a[6]; a[6]=7

i= 3 ;

p[3]=&a[9]; a[9]=10

你列印p[3][2],即列印a[9]為第一個元素的陣列的[2]元素,因為a陣列沒有定義成二維陣列,所以a[9]為第一個元素的陣列的[2]元素即a[9]後面兩個地址的元素,也就是說a[11]=12。

補充,看了上面的回答,做出點解釋,你可以驗證下。知道p[3][0]的指標指向a[9]後,不能把p[3][2]理解為p[3][0]的數值+2,應該理解為地址+2,因此,我推斷,如果a[9]=0,p[3][2]也不會等於2,而是12.但如果a[11]=0,那麼p[3][2]=0

C語言一些小問題,求解答c語言問題,求解答。

結果是對的。首先,funs 定在呼叫的時候形成了遞迴,所以算出來的結果就不會是5 5 1。其次,你的程式的過程可以表達為5 4 3 2 也就是說你在funs 裡遞迴呼叫了funs 在做c語言程式的時候,一定要理清思路,避免不應出現的遞迴,以免形成死迴圈,你這個呼叫如果引數錯誤,很容易出錯。第三,按你...

C語言連結串列問題,求解答

struct node create struct node head return head 該建表函式的邏輯關係是對的。首先定義一個節點,且將這個結點的指標域地址賦給p1和p2 請仔細思考這句話的意思 並將讀入的資料存入資料域num,用p1 next null 使其指向null。如果該結點是連結...

c語言指標和函式的問題,C語言指標和函式的問題。!

樓主你好。include int main printf 修改前,陣列元素的值 段1 print array a,5 printf 修改後,陣列元素的值 段2 change values a,5,3 print array a,5 return 0 函式功能 修改一位陣列元素的值,規則是 新值 原值...