首页 > 试题广场 >

若有“ float a[3]={1.5,2.5,3.5},*

[单选题]
若有“ float a[3]={1.5,2.5,3.5},*pa=a;*(pa++)*=3; ”,则 *pa 的值是()。
  • 1.5
  • 2.5
  • 3.5
  • 4.5
*pa=a;指针pa指向a[0];
pa++;pa++和++pa的区别知道吧,返回值仍是pa操作之前的值;
*(pa++)取pa只想的地址的值;
*(pa++)*=3;将该值变为原来的3倍,也就是数组a的第一个值为4.5;
由于pa++之后pa指针移动了size(float)个字节,所以pa指向a[1],所以值为2.5。
发表于 2017-10-09 20:53:04 回复(2)
*(pa++) *= 3
1)*pa  *=  3,此时pa指向a[0],a[0] = 4.5
2)pa++,此时pa指向a[1],*pa = a[1] = 2.5。
发表于 2022-01-06 11:24:24 回复(1)
pa[0]变了 pa[1]没有变过
发表于 2022-04-12 13:51:56 回复(0)
w\q头像 w\q
*pa=a,pa是指针,指向是a[0],pa++,后加加,先是(*pa)*=3;等价于a[0]=3,后指针后移,pa指向a[1]
发表于 2017-07-25 22:34:05 回复(0)
这道题考pa++和++pa的区别。pa++是先取pa的值,然后再++。++pa是先++,再取pa的值。
发表于 2020-02-25 07:43:39 回复(0)
定义了一个浮点型指针,并且指向a[0],先执行*(pa)*=3的操作,即*pa=(*pa)*3,此操作后a[0]变成4.5,然后执行pa++,即把指针向后移一个位置,此时指针pa指向a[1],即最后的结果应该是取a[1]的值,为2.5
发表于 2022-05-05 15:03:41 回复(0)
pa++为后操作 执行完后首项为4.5 然后pa指向第二项 即为2.5
发表于 2022-03-01 15:28:16 回复(0)
这种题目纯油饼,有必要这样坑嘛
发表于 2024-07-27 09:58:10 回复(0)
前置加加和后置++的区别     后置加加 先用自+   所以*(pa++)*= 3  -》 *(pa)* = 3 和 pa = pa + 1;
编辑于 2024-01-22 20:32:59 回复(0)
***一下子把解题思维看成了模电题,其实就是一个自加赋值给自己的问题,*pa=a;是把数组地址赋值给指针pa,pa++,则是地址加一个float位数,则此时的*pa则指向a[1]
发表于 2023-09-10 21:51:54 回复(0)
问的是*pa的值,pa在赋值以后不再指向第0个,而是第1个。
发表于 2021-03-09 09:57:45 回复(0)