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語言 計算機是...