若有定義inta21,2,3,4p則p1表示的陣列元素是

2021-03-19 18:20:40 字數 1655 閱讀 5342

1樓:匿名使用者

p[0] = a[1] 是將a[1]陣列的地址賦值給了p[0]為了更好的理解,我們定義一個int *q;

q = p[0];

這樣 *(p[0] + 1)就等價於 *(q +1)了,由於q是int型的指標並指向的a[1]的第0個元素a[1][0], q+1就會指向a[1][0]的下一個元素了,也就是a[1][1].

2樓:牙刷的悲傷

p[0]指向的是a[1][0]的地址,*(p[0]+1)自然指的是a[1][1]

3樓:檢玉芬凌戌

arr[n]等價於*(arr+n)

因為p[0]=a[1],所以*(p[0]+1)相當於*(a[1]+1),等價於a[1][1](把a[1]看成是上式的arr即可)

若有定義 int a[2][2]={1,2,3,4},*p{3];p[0]=a[1];,則*(p[0]+1)表示的陣列元素是

4樓:德克and德華

arr[n]等價於*(arr+n)

因為p[0]=a[1],所以*(p[0]+1)相當於*(a[1]+1),等價於a[1][1](把a[1]看成是上式的arr即可)

c語言 定義則執行y=(*--p)++後,y的值是

5樓:

這好解釋啊,因為++是後++,要等到把(*--p)的值賦給y後(*--p)的值才會增1。所以結果是y=1,a[0]=2。你可以用下面的**驗證:

int main(void),y,*p=&a[1];

y=(*--p)++;

printf("%d %d\n",y,a[0]);

return 0;}

有定義inta[5]={1,2,3,4,5},如有int*p=a,則*p的值,*(p+2)的值

6樓:八千漢字

*p = a[0], *a ,*(a+0) , p[0] 都是 陣列的第一個元素1

*(p+2),*(a+2),a[2],p[2],都是 陣列的第三個元素 3

a 和 p 的差別就是 a指標是常量 無法做改變指標值,p是變數

7樓:匿名使用者

int *p=a.的意思是 *p=a[0] *(p+2)=a[2]

.若有以下定義和語句則++(*p)的值是___3__。這個答案為什麼不是2

8樓:

p=&a[2], p指向了a的下標為2的元素,c語言的陣列下標是從0開始的,下標為2指的是第三個元素,2,++(*p)將該元素增加1,2+1=3

9樓:藍色回憶殘月

int a[4]=,*p;

p=&a[2]=2;

再執行(*p)=2;

之後++(*p)=3;

10樓:支瑜應文瑞

a因為p+=2

是p=0+2

,指的是陣列中的第二個元素。而*(p++)是p+1

,*(p++)表示第三個元素的值。故選a。

c語言題若有定義inta9pa則p5表示

答案選 b 剛剛看到a 5 就選了 p a 指向的就是a 0 p 5就相當於向後移動5個,就是a 5 表示地址如果是 p 5 就表示值 你好,選b。int p a表示指標p指向陣列a的首地址。也可以說是a 0 的地址。所以p 5指向a 5 的地址 若有定義int a 10 p a 則p 5表示什麼 ...

若有定義 int a2,4,6,8,

恭喜你 答對了,呵呵。其實這個問題你只需要在vc的編譯器上執行下就可以知道了,而且多動手寫程式可以調動積極性。20懸賞!等!若有以下定義 int a 1,2,3,4,5,6,7,8,9,10 p a 則值為3的是 20 p a,陣列名錶 bai示地址,該 du句話的意思就是p a 0 p 2表示p ...

若有定義int p 3則定義了名為p的指標變數它可以指向每行有整數元素的二維陣列

問題1 首先,這裡只是定義了一個指標型變數,這個p是一個指向長度為3的整型陣列得指標,那麼這個陣列最大有多少行,取決於先面這個賦值 int array n 3 p a 在這裡雖然n有多大,那麼p就有多少行,它能不停得加下去,直到n 1 問題2 這個是編譯系統的問題了,就像我們下得所有c語言 計算機是...