| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 390 人关注过本帖
标题:函数问题
只看楼主 加入收藏
plane5530
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-1-19
结帖率:83.33%
收藏
 问题点数:0 回复次数:3 
函数问题
#include "stdio.h"
int s();
int x,y;
main()
{int n;
x=1;y=2;
n=s();
printf("x=%d,y=%d,n=%d,x,y,n);
}
int s()
{int z;
x=3;y=4;
z=x+y;
return(z);
}
运行结果是x=3 y=4 n=7,为什么啊?函数不是实参向形参传递吗?为何不是x=1 y=2 n=3?
搜索更多相关主题的帖子: 函数 
2007-04-13 13:28
Javal
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-7
收藏
得分:0 
x和y是全局变量,调用s()函数后,x被重新赋值为3,y为4

猝然临之而不惊,无故加之而不怒 /?spaced" target="_blank">Linux C资料
2007-04-13 13:42
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 
晕, 你的X,Y是全局变量啊,全局变量在单元里只要没被屏蔽都是有效的,你说的哪个情况是局部变量。
2007-04-13 13:42
初学Delphi
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:330
专家分:0
注 册:2006-4-4
收藏
得分:0 
x,y 现赋值了1,2
s()中又重新赋值了,也就是说x=1;y=2;这句写不写都可以
2007-04-13 13:50
快速回复:函数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023058 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved