| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 359 人关注过本帖
标题:C 程式輸出的問題,輸出
只看楼主 加入收藏
tzungshianli
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-11-17
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
C 程式輸出的問題,輸出
void func()
{
int x=0;
static int y=0;
x++; y++;
printf("%d--%d\n", x, y);
}
int main()
{
func();
func();
}
2014-11-19 20:06
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:10 
什么问题说明下吧,如果是静态变量问题那我把百度百科的复制给你。
以下复制百科,解释较全,我就不费力了。




静态局部变量

在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。

我们先举一个静态局部变量的例子,如下:

//Example3
#include<iostream.h>

void fn();

void main()

{

fn();

fn();

fn();

}

void fn()

{

staticintn=10;

printf("%d",n);

n++;

}

通常,在函数体内定义了一个变量,每当程序运行到该语句时都会给该局部变量分配栈内存。但随着程序退出函数体,系统就会收回栈内存,局部变量也相应失效。

但有时候我们需要在两次调用之间对变量的值进行保存。通常的想法是定义一个全局变量来实现。但这样一来,变量已经不再属于函数本身了,不再仅受函数的控制,给程序的维护带来不便。

静态局部变量正好可以解决这个问题。静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。

静态局部变量有以下特点:

该变量在全局数据区分配内存;

静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;

静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;

它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;
2014-11-19 20:19
tzungshianli
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-11-17
收藏
得分:0 
我搞不懂他答案排版的意思
图片附件: 游客没有浏览图片的权限,请 登录注册

我有用紅筆圈出
2014-11-19 22:34
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
它说输出多少,不是输出x和y吗,而且输出2次,打印的时候有-号分割
2014-11-19 23:20
tzungshianli
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-11-17
收藏
得分:0 
謝謝,我了解他用-分開。
2014-11-20 08:49
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:0 
A: 1--1
   1--1

B: 1--1
   1--2
...以此类推,不就这个意思吗?
2014-11-20 11:12
tzungshianli
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-11-17
收藏
得分:0 
不好意思,沒注意到printf中間有--
謝謝大家
2014-11-20 12:30
快速回复:C 程式輸出的問題,輸出
数据加载中...
 
   



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

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