黑马程序员技术交流社区

标题: 关于函数赋值问题 [打印本页]

作者: ak13211    时间: 2015-12-30 11:08
标题: 关于函数赋值问题
比如 int a,b,c;
c=a+b;
scanf("%d%d",a,b);
printf("%d",c);
求教:  赋值与否有什么区别 ?



作者: 韦德460    时间: 2015-12-30 18:11
没有区别,因为你的赋值在scanf函数后面,即使a和b有值了也不会再相加然后赋给c,c打印出来还是随机数,不会是a+b
作者: ak13211    时间: 2015-12-31 15:27
韦德460 发表于 2015-12-30 18:11
没有区别,因为你的赋值在scanf函数后面,即使a和b有值了也不会再相加然后赋给c,c打印出来还是随机数,不 ...

问题一 c=a+b 写在scanf 前面 c语言不是逐条运行吗 为什么说在后面?(程序已测试出错了)
问题二 我把c=a+b写在scanf后面 程序可以正常执行  结果是a+b。 然后回到原来的问题,赋值有什么意义?赋值与否有什么区别?  非常感谢
作者: 韦德460    时间: 2015-12-31 21:33
ak13211 发表于 2015-12-31 15:27
问题一 c=a+b 写在scanf 前面 c语言不是逐条运行吗 为什么说在后面?(程序已测试出错了)
问题二 我把c= ...

程序是从上往下执行的,定义三个变量a,b,c,这是abc都是随机数。然后执行c=a+b,计算出来c还是随机数,然后执行scanf函数,给a和b赋值,a和b的值改变了。最后执行printf函数,打印c,这时候的c还是随机数!
你的问题赋值与否有什么区别是什么意思,问题说具体一点方便我回答你
作者: ak13211    时间: 2016-1-1 09:27
韦德460 发表于 2015-12-31 21:33
程序是从上往下执行的,定义三个变量a,b,c,这是abc都是随机数。然后执行c=a+b,计算出来c还是随机数, ...

int a,b,c;

scanf("%d%d",a,b);
c=a+b;
printf("%d",c);
这样的话 是不是腹部赋值都一样了?不一样的话 有什么区别
作者: 956251361    时间: 2016-1-1 09:50
看晕了.
作者: 韦德460    时间: 2016-1-1 12:49
ak13211 发表于 2016-1-1 09:27
int a,b,c;

scanf("%d%d",a,b);

不是啊,赋值的话打印c的结果就是a+b计算的结果,
不赋值的话,c就是随机数了啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2