有以下程序,为什么2个printf输出的结果不一样

 我来答
无人能渡我自渡
2016-09-23 · 超过26用户采纳过TA的回答
知道答主
回答量:62
采纳率:100%
帮助的人:50.6万
展开全部
首先,这个问题涉及了一个问题:
1,全局变量被局部变量隐藏的问题
sub1函数是带有参数的,而且参数变量名与全局域的相同,虽然不会产生错误,但是,在sub1的区域中会隐藏掉全局域中的m,n变量,使用的是sub1带入的参数m,n;即在调用sub1函数时,使用的不是全局的m,n,不会改变全局域m,n,而是改变局部变量m,n;
sub2不带参数,使用的也是m,n,编译器会去寻找m,n,在全局域找到了,所以使用的是全局域的m,n,会改变全局域m,n

当sub1执行后,m,n是全局域的值1,2,所以输出是1,2
当sub2执行后,全局域m,n改变,所以输出是2,4

题主可以查下隐藏的概念(其实也就是弄清作用域的概念):
http://baike.baidu.com/link?url=Zd9C4acyErFdBL1AWL0ByMPXe2G8O8lBIhuSzUaRn3uJN7hxG_viavXlrNToZfg6QuoIPI3tIV0sohTBfhawya
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式