原题目是设有定义“int a=3,b,*p=&a;",则下列语句中使b部位3的语句是1.b=*&a
2.p=a,
3.b=*p,
4.b=*a
答案是1.2.3
1、*&a等价于 a,所以1等价于 b = a;因此成立;
2、错误;
3、*p等价于a,所以成立;
4、因为a是int型变量,不是指针变量,所以*a运算错误。
因此能使b为3的语句是1和3.
但是你的各个语句里面都没有分号,所以都是表达式而不是语句,因此严格的说的话你的选项都不对。
p=a这不是直接引用吗?
追答不是,p是指针变量,而a不是,所以赋值会被编译器警告的。也就是说是不合法的。
追问那我想通过直接引用法该怎么实现b中的值为3呢?
追答b = 3;