永发信息网

已知int a, *p=&a; 则下列函数调用中错误的是 (A) scanf(“%d”, &a); (B) scanf(“%d”, p); (C) printf(

答案:6  悬赏:10  手机版
解决时间 2021-03-19 17:56
已知int a, *p=&a; 则下列函数调用中错误的是 (A) scanf(“%d”, &a); (B) scanf(“%d”, p); (C) printf(
最佳答案
做题的话选 D。
先说AC. scanf("%d", &a); printf("%d", a) 这两个不用怀疑,只要上过机就知道。
B,没有问题。因为p=&a即p已经接收了a的地址,所以scanf("%d", p)就做到了把a的地址传递给scanf函数,运行时输入的数值会正确存到a那里,没有问题。
D,在语义上就有问题,显示a可用printf("%d",*p),而显示p本身可用printf("%p", p)但几乎没实际意义。更深入的讨论不展开了。
不得不提scanf调用的较奇怪地方,要用取址运算符('&'),而printf不用。如果哪天用scanf忘了用'&',就会发现结果出问题了。初学只需记得scanf调用几乎一定要用'&',只有字符串不用就够了。 至于其原因,详细解释的话涉及到C函数的本质,等到学完函数和指针就明白了。
全部回答
第二个错了,不能直接输入并且改变指针p的地址
A 10 B 20 C 不确定值 D 程序有错误 完整程序的话,D 因为A是未定义的符号
答案:D
分析:p是指针变量,输出用格式字符%d,两者相冲突!
B
已知int a, *p=&a; 则下列函数调用中错误的是
(A) scanf(“%d”, &a);
(B) scanf(“%d”, p);
(C) printf(“%d”, a);
(D) printf(“%d”, p);

D是错的,改为printf(“%d”, *p);
指针名p没有意义
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
莫干山板材榆林乙鑫店怎么去啊,有知道地址的
古时补鞋匠手里七块铁片叫什么?
我想知道,在PL/SQL里,有两个窗口:sql
灯管 启动器 60w好点80w好点 怎么分好和不好
早寒有怀这首诗表现了作者怎样的思想感情
现代瑞纳后座怎么拆卸
系统经常提示无法访问C:/Documents and Sett
魅蓝note刷机方法二(适用于所有固件): 关
昌河福瑞达面包车1.0发动机故障码p0123、p010
水管从大门口门槛底部穿过风水有影响吗
我是淘宝卖家,想找淘宝主播给我推广产品,我
珠江up121rg钢琴规格尺寸
假面骑士OOO所有combo以及字母缩写
男朋友说这辈子最不想伤害的就是我,他怕时间
我昨天晚上梦见狮子在天上飞
推荐资讯
Word2016文档最近的位置记录怎么删除
东鑫小吃地址在什么地方,想过去办事
别克gl8加速前轮80到一百码嗡嗡作响
潍坊哪里钓鱼
草本克疣霜说明书,有副作用吗?
欧曼EST怎么样??
用天真这个词怎么造句
食堂用的三相电源380伏,蒸饭箱为什么不用零
英雄联盟影流有哪些英雄
三才解析,润泽的意思
qq浏览器的本地书签在哪个文件夹
我的word保存的时候不小心点否了 你能帮助我
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?