| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 703 人关注过本帖
标题:局部变量个全局变量求助
收藏  订阅  推荐  打印 
yj2822263
Rank: 1
等级:新手上路
帖子:19
积分:320
注册:2007-12-2
局部变量个全局变量求助

以下这个程序 为什么算出来是(10,20,40,40)而不是(20,10,40,40)  局部变量和全局变量在这里是怎么回事
int x1=30,x2=40;
main()
{
  int x3=10,x4=20;
   sub(x3,x4);
   sub(x2,x1);
   printf("%d,%d,%d,%d\n",x3,x4,x1,x2);
}
  sub(int x,int y)
{
  x1=x;x=y;y=x1}
搜索更多相关主题的帖子: 变量  全局  局部  
2007-12-6 13:20
静思
Rank: 4
来自:沈阳
等级:高级会员
威望:8
帖子:625
积分:6426
注册:2006-2-28

调用sub(x3,x4)这个子函数你能交换x3和x4这两个变量的值吗?
sub(int x,int y)你注意这两个形参的类型

英者自知,雄者自胜
2007-12-6 13:25
wzhgzj
Rank: 2
等级:注册会员
帖子:108
积分:1212
注册:2007-9-6
噢噢!

全局变量不影响局部的
sub(int x,int y)
{
  x1=x;x=y;y=x1这里的X1改了成x就可以了么

命运在我手中
2007-12-6 13:25
死了都要C
Rank: 12Rank: 12Rank: 12
来自:四川成都
等级:贵宾
威望:13
帖子:1507
积分:15568
注册:2006-12-7

sub(x2,x1);

怎么得到40 40 应该是 40 30 吧

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
http://yzfy.org
2007-12-6 13:29
静思
Rank: 4
来自:沈阳
等级:高级会员
威望:8
帖子:625
积分:6426
注册:2006-2-28

回3#楼的,调用sub(x3,x4)后主函数也不能改变x3和x4的值,因为你传进去的实参类型不是指针类型,而是整型。虽然sub(int x,int y)这个函数可以完成交换两个数的功能,传进去的两个值是实参的副本,当调用返回后,局部变量的值被系统自动回收,主函数中的x3和x4并没有改变

[[italic] 本帖最后由 静思 于 2007-12-6 13:33 编辑 [/italic]]

英者自知,雄者自胜
2007-12-6 13:31
死了都要C
Rank: 12Rank: 12Rank: 12
来自:四川成都
等级:贵宾
威望:13
帖子:1507
积分:15568
注册:2006-12-7

LS100分

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
http://yzfy.org
2007-12-6 13:33
yj2822263
Rank: 1
等级:新手上路
帖子:19
积分:320
注册:2007-12-2

那为什么后面的又是 40,40呢  为什么不是40,30呢
2007-12-6 13:55
死了都要C
Rank: 12Rank: 12Rank: 12
来自:四川成都
等级:贵宾
威望:13
帖子:1507
积分:15568
注册:2006-12-7

因为你交换函数```

中间变量是X1````

为什么``自己想``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
http://yzfy.org
2007-12-6 14:00
夜礼服假面

等级:禁止访问
帖子:92
积分:1106
注册:2007-11-26
提示: 作者被禁止或删除 内容自动屏蔽
2007-12-6 14:16
jxj777
Rank: 2
等级:注册会员
帖子:91
积分:1066
注册:2007-10-27

x1 x2全局变量
x3 x4局局变量
sub(x3,x4)值传递,无返回值,所以不改变形参,函数结束,变量自动释放
sub(x2,x1) 全局变量,函数结束不释放变量,x1=x2,故x1 x2 都为40

一个人的力量是缈小的....... 互帮互助才是出路
2007-12-7 13:22
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.056576 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved