有定义: int a[3][3]={1,2,3,4,5,6,8,9,10},则printf("%d",*(*(a+1)+2))语句的输出结果为6这是为什么

2024-12-01 19:35:06
推荐回答(2个)
回答(1):

a是二维雹禅悔数组,则a表示的是指针的指针,
*(a+1)表示的是a[1][0]的地址,
*(*(a+1)+2)表示的是在a[1][0]的地址源正加2,
再取这个地址袭早上的值也就是6了

回答(2):

答案A.
数组定义腊明是a[0]=1,a[1]=2,a[2]=3, ...,a[9]=10
A. p += 2使p指向a[2], *(p++)表示先取*p的值, 然后p增加1(指向a[3]), 所以取得的值是a[2]=3
B. p += 2使p指向a[2], *++p表示先p增加1(指向a[3]),然后取*p的值,所以是a[3]=4
C. p += 3使p指向困局碰a[3], *p++表示先取*p的值, 然后p增加1(指向a[4]), 所以取得的值是a[3]=4
D. p += 2使p指向a[2], ++*p对*p的值增加1, 所以取得的值是a[2]=a[2]+1=4

还有一种写法是(*p)++, 表示先取*p的值, 这个值再增加1
请采纳答案,支持我一下。汪谈