| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 861 人关注过本帖
标题:[求助]变量作用域问题
取消只看楼主 加入收藏
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
 问题点数:0 回复次数:6 
[求助]变量作用域问题

自学迭代时,遇到问题,请看下面代码,

#include <stdio.h>

int mul(int n);
int sum=1;

int main() {
int n=5;
printf ("%d!=%d",n,mul(n));
return 0;
}

int mul(int n) {
if (n!=1) sum=n*(mul(n-1));
return sum;
}

那个全局变量看起来非常不爽,实际上我只在mul()里用,用完就应该归还给操作系统,
如果放在mul()函数里面,那就压根不对了.
我该怎么办啊??

搜索更多相关主题的帖子: 变量 
2007-09-14 14:05
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
那么静态变量在函数结束时会归还内存么???
2007-09-14 14:16
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
3楼在mul中好像会出问题,因为每次进入mul函数时sum都会被刷新,不同的编译器会做不同的事情,我很怕这种事情。。。。。。。

[此贴子已经被作者于2007-9-14 14:26:25编辑过]


2007-09-14 14:21
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
以下是引用無邪的睡脸在2007-9-14 14:20:47的发言:
静态变量的生存期是整个源程序!程序执行完后才释放!

原来如此,但是全局变量不也是一样的么??我想让这个变量在处理完mul后马上从内存中消失,免得以后夜长梦多:)

[此贴子已经被作者于2007-9-14 14:24:55编辑过]

2007-09-14 14:23
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
对不起,小弟是自学的,所以基础不扎实,请问当一个变量被重复申明不是应该抱错么??
将sum申明写进mul不就是重复申明了么??
2007-09-14 14:43
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
回复:(SNAKEQX)对不起,小弟是自学的,所以基础不扎...
小弟刚才试了一下,看一下附件的图巴,有warning的阿
图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2007-9-14 15:05:57编辑过]

2007-09-14 15:03
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
谢谢ls的,我弄明白了,请让此贴沉把。谢谢大家对新人的关心。
2007-09-14 15:50
快速回复:[求助]变量作用域问题
数据加载中...
 
   



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

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