标题:关于static和全局变量
只看楼主
gang
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-2-28
 问题点数:0 回复次数:3 
关于static和全局变量
请问一下我用下面这样的句子定义一个全局变量:static int sum;
然后我在下面的用函数调用它并重新对它赋值,如:
void funtiont(sum)
{
sum=10;
}
这样的话重新赋的值会不会保存到全局变量里面呢?我的意思是别的函数再调用sum的时候它的值是初值还是修改后的值.谢谢!
搜索更多相关主题的帖子: 全局变量 static sum 函数 定义 
2006-03-06 22:39
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
得分:0 

修改后的值
全局变量是静态的存储的在程序运行时一直占用内存
而局部变量是动态存储的在函数体内用完就释放
当然你用static定义一个变量
他也会一直占用内存知道程序结束以后才释放内存


自强不息:)
2006-03-06 22:46
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
得分:0 
[CODE]

函数的参数要注意,要按引用或指针传递

#include<iostream>
using namespace std;

static int sum;
void function(int&); //void function(int*);

int main(){

cout<<sum<<endl;
function(sum); //function(&sum);
cout<<sum<<endl;

system("pause");
return 0;
}

void function(int &x) //void function(int *x)
{
x = 10; // *x = 10;
}

[/CODE]

按值传递是改变的原变量的复制,

[CODE]

#include<iostream>
using namespace std;

static int sum;
void function(int);

int main(){

cout<<sum<<endl;
function(sum);
cout<<sum<<endl;

system("pause");
return 0;
}

void function(int x)
{
x = 10;
}

[/CODE]


2006-03-07 09:10
gang
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-2-28
得分:0 
我的问题已经解决了,谢谢二三楼!

一个来自华南师大通信工程的菜鸟,只学过一点学校教的C++和自学了一点C,大家不要笑他!哈哈……
2006-03-07 12:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-48796-1-1.html




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

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