为什么运行完是相同的数?
发表在C语言图书答疑 2012-11-16
是否精华
版块置顶:
#include <stdio.h>
int main ()
{
int *p,q;
p=&q;
printf("please input : \n");
scanf("%d",p);
printf("the number is : \n");
printf("%d\n",q);
return 0;
}

please input :12
the number is :12

书上233页,我这个地方没有看明白,为什么给指针变量一个12,最后q显示的也是12呢,p是地址值,没有给q赋值啊,怎么会显示12呢
分享到:
精彩评论 4
过冬的松鼠
学分:0 LV1
TA的每日心情
Q
2021-01-03 22:18:14
2012-11-16
沙发
读者朋友您好。scanf函数的第二个参数的类型和printf函数的第二个参数的类型是不一样的。scanf函数传递的实参是变量的地址,而printf传递的是变量。scanf函数会将处于该地址的内存依照第一个参数的格式,修改为输入的值。
希望能够帮助到您。
金橘茶
学分:0 LV1
TA的每日心情
伤心
2020-11-29 10:38:14
2012-11-19
板凳
你好,谢谢你的回复,我觉得书上234页最上面,程序的注释“输出变量的地址”好像是错误的,应该是输出变量的值
过冬的松鼠
学分:0 LV1
TA的每日心情
Q
2021-01-03 22:18:14
2012-11-21
地板
读者朋友您好。如果需要输出变量q的地址,则输出语句可以应该是如下这种形式:
printf("%d\n",&q);
&q是q的地址,也是指向q的指针的值。
请您说明是哪本图书上的错误,我们将在核实后加以改进。
谢谢您的支持。
金橘茶
学分:0 LV1
TA的每日心情
伤心
2020-11-29 10:38:14
2012-11-22
4L
C语言从入门到精通 234页最上面的程序段
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照