| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:有关register变量和static变量的区别和联系
取消只看楼主 加入收藏
Aamir
Rank: 2
来 自:厦门
等 级:论坛游民
帖 子:18
专家分:30
注 册:2011-2-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
有关register变量和static变量的区别和联系
题目:输出1到5的阶乘
    用static变量的情况:

#include<stdio.h>
void main()
{
    long fac(long);
    long i;
    for(i=1;i<=5;i++)
        printf("%ld!=%ld\n",i,fac(i));
}

long fac(long n)
{
  static long f=1;
        f=f*n;
    return(f);

}

   可以得到正确结果

用register变量
#include<stdio.h>
void main()
{
    long fac(long);
    long i;
    for(i=1;i<=5;i++)
        printf("%ld!=%ld\n",i,fac(i));
}

long fac(long n)
{
  register long f=1;
        f=f*n;
    return(f);

}
  不能得到正确结果


问题:如果说,register和static的区别仅在于register是寄存器变量,可以提高运行效率。那么,既然作为寄存器变量的register,为什么不能替代static,毕竟他俩都是存取变量,只不过存取变量的地方不同而已?麻烦大家看看,谢谢。
搜索更多相关主题的帖子: return 
2011-04-05 12:25
Aamir
Rank: 2
来 自:厦门
等 级:论坛游民
帖 子:18
专家分:30
注 册:2011-2-23
收藏
得分:0 
回复 2楼 ansic
谢谢
2011-04-05 16:34
快速回复:有关register变量和static变量的区别和联系
数据加载中...
 
   



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

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