首页 > 试题广场 >

假定有定义为“ int a[10], x, *pa=a; ”

[单选题]
假定有定义为“ int a[10], x, *pa=a; ”,若要把数组 a 中下标为 3 的元素值赋给 x ,则不正确的赋值为 )?
  • x=pa[3]
  • x=*(a+3)
  • x=a[3]
  • x=*pa+3
*pa + 3就是a[0]+3
发表于 2017-11-23 14:03:36 回复(5)
D的意思是将*pa指向的值+3,而不是*pa的地址往后数3位
发表于 2018-04-29 06:38:09 回复(0)
D选项中,*比+的优先级高,先执行*pa,即就是a[0],然后给a[0]的值加3,并不是a[3]
发表于 2021-05-18 14:39:12 回复(1)
当pa=a时,指针pa指向数组a的首元素,即a[0]的地址(有pa==&a[0]==a),则*pa==a[0]==*a。 此时,*(pa+i)==a[i]==*(a+i)
发表于 2022-04-29 08:17:05 回复(0)
题目看成正确的啦😂
发表于 2020-08-16 09:12:37 回复(0)
A怎么理解啊同志们
发表于 2023-09-21 14:12:51 回复(2)
*pa=a a[0]的地址,pa,&a[0],a 表示数组下标为i的值 *(pa+i), a[0+i],*(a+1) *p+3,的意思是a[0]+3
发表于 2022-08-30 21:37:54 回复(0)
pa a &a[0]
发表于 2022-05-05 16:42:42 回复(0)