作业帮 > 数学 > 作业

12.若定义:int a,*p=&a; 则a与下列表达式 B 等价.请问ACD哪错了?A) p B) *&a C) *&

来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/11 18:24:25
12.若定义:int a,*p=&a; 则a与下列表达式 B 等价.请问ACD哪错了?A) p B) *&a C) *&p D)&*a
12.若定义:int a,*p=&a; 则a与下列表达式 B 等价.请问ACD哪错了?A) p B) *&a C) *&
1、在*p=&a中,&a表示a这个变量的存放地址,然后把这个地址放到p这个变量中,所以p是一个指针变量(用*p表示),所以,打印出来的p仅仅是存放a的一个地址,而不是a变量本身.所以,A)是错误的.
2、*&a先是指向a的地址,再用指针指向这个地址,当然还是变量a本身.其实,任何变量的“*&(变量名)”都是指的这个变量本身,如:*&a就是a,*&p也与p完全等价,即:*&a==a,*&p==p是恒成立的.这也就说明了B)是正确的,C)是错误的.
3、&*a这样的写法根本不知所以然,没有任何意义.所以D)也是错误的.