帮忙解释一下c 语言的提啊!谢谢啦!!

若有说明语句:double*P,a;,则能通过scanf语句正确输入项读入数据的程序段是(D)A*p=&a;scanf(“%lf”,p);B*p=&a;scanf(“%f... 若有说明语句:double*P,a;,则能通过scanf语句正确输入项读入数据的程序段是(D)
A *p=&a;scanf(“%lf”,p); B*p=&a;scanf(“%f”,p);
Cp=&a;scanf(“%lf”,*p); Dp=&a;scanf(“%lf”,p);
展开
 我来答
Roncis
2010-08-24 · 超过10用户采纳过TA的回答
知道答主
回答量:20
采纳率:0%
帮助的人:16.4万
展开全部
//申明了一个指针类型P和双精度类型的a变量
double *P, a;

//因为P是指针,只存放一个地址值。下面的语句是把变量a的地址赋值给指针。
p=&a;

//*p = &a; 赋值语句是错的,因为 *p 是一个 取 指针所指向地址的值。而不是地址。而&a是 取变量a的地址。故赋值错误。

scanf("%lf", p);
/*因为是double双精度的,所以格式是%lf, scanf是把输入的值存放到一个变量的地址里面,而指针P是一个存放地址的值。故只能这样写。 */

综上所述,答案D 是正确的。
选择A错在前面的赋值语句。
选项B错在%lf长双精度格式。
选项C错在scanf语句里面的*p。
尘缘郑俊杰
2010-08-24 · 超过30用户采纳过TA的回答
知道答主
回答量:140
采纳率:0%
帮助的人:117万
展开全部
C p代表地址所以p=&a double输入时格式是lf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式