首页 > 试题广场 >

若有说明:int i, j=2,*p=&i;,则能完成 i=

[单选题]
对于下面的代码段
int i, j = 2, *p = &i;
则能完成i=j赋值功能的语句是( )
  • i=*p;
  • *p=*&j;
  • i=&j;
  • i=**p;
&取地址符生成指针,*解引用&j,按照运算符优先级也就是*(&j),&*抵消之后, i = j 符合题意
发表于 2017-09-20 08:42:35 回复(0)

*p = &i;意思是定义一个指针p,所指向的地址为i的地址。*p = *&j;意思是给p所指向的地址赋值,即指向j地址的值,也就是j的值。而指针p又指向i所在的地址,因此相当于i = j;

发表于 2019-01-13 23:12:47 回复(0)
*p = *&j; 等价于 *p = j; 等价于 i=j;
发表于 2018-07-23 10:32:56 回复(1)
*p=&i迷惑了😒
发表于 2021-01-29 21:27:21 回复(0)
这里的*p=&i应该是错误的吧?应该是int *p;p=&i;
选项B:*p=*&j;等于:p=&j;
所以:p=&i;p=&j; 也就有i=j;
发表于 2017-12-20 10:12:53 回复(5)
不知道为啥要出这种,实际谁会这么写。。。
发表于 2022-08-25 16:38:21 回复(0)
为什么a是错的呀
发表于 2022-07-15 19:27:39 回复(2)
c不能理解成引用吗
发表于 2018-04-08 19:50:40 回复(2)