int *p=&a;和 int *p; *p=a;和 int *p; p=&a;有区别么?

int *p=&a;和 int *p; *p=a;和 int *p; p=&a;有区别么?
我怎么看起来一样的哈。
有道选择题,若有定义int a=5;下面对(1)和(2)两个语句的正确解释是____。
(1)int *p=&a; (2)*p=a;
A.语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值。
B.(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p
C.语句(1)在对p进行说明的同时进行初始化,使p指向a
语句(2)将变量a的值赋给指针变量p
D.语句(1)在对p进行说明的同时进行初始化,使p指向a
语句(2)将变量a的值赋给*p
答案是D,可我看答案ABD怎么都对啊?????
bissing 1年前 已收到5个回答 举报

lixiaohu4619279 幼苗

共回答了17个问题采纳率:82.4% 举报

1.是声明一个指针变量,其中P就是那个指针变量,使p指向a
2.p的值就等于p所指向的内存地址中存储的值,就是变量a

1年前

3

tdsc7a2lh5_1_aa_ 幼苗

共回答了12个问题采纳率:83.3% 举报

当然是d正确
int *p=&a; 与 int *p; p=&a;
这两个是等价的
但是int *p; *p=a; 就不同了,只是把a的值赋给*p,并没有让p指向a的地址

1年前

1

ghjkgk 幼苗

共回答了25个问题采纳率:96% 举报

语句(1)实际上相当于下面的两个语句:
int *p;
p=&a;
是一个定义语句,和一个赋值语句:把变量a的地址赋给指针变量p
语句(2)就非常简单,对指针p指向的地方赋与一个值

1年前

1

bohuigongsi 春芽

共回答了15个问题采纳率:80% 举报

A选项中第二个语句中*P其实就是变量a,当然和第一个语句不一样啦,B选项第二个语句赋的是a的值,而不是地址

1年前

1

梦不醒 春芽

共回答了18个问题采纳率:83.3% 举报

第一个就不用说了,(2)没有定义*p,所以有可能出错的呀
第二个中的是原因,&a表示的是地址而a表示的可不是呀,他表示的是一个整型 变量
第三个吗,我怎么觉得应该是C对呢而不是D对呢

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 20 q. 0.023 s. - webmaster@yulucn.com