有定义: int a[3][3]={1,2,3,4,5,6,8,9,10},则printf("%d",*(*(a+1)+2))语句的输出结果为6这是为什么
*(a+1)不是=a[1][0]=2吗?2+2=4但是外面有个“*”不是很懂,而且怎么算出来6的,求高手...
*(a+1)不是=a[1][0]=2吗? 2+2=4 但是外面有个“ * ”不是很懂,而且怎么算出来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
请采纳答案,支持我一下。
数组定义是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
请采纳答案,支持我一下。
追问
你回答的什么啊,你知道这是为什么吗为什么是6
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询