关于static和全局变量
请问一下我用下面这样的句子定义一个全局变量:static int sum;然后我在下面的用函数调用它并重新对它赋值,如:
void funtiont(sum)
{
sum=10;
}
这样的话重新赋的值会不会保存到全局变量里面呢?我的意思是别的函数再调用sum的时候它的值是初值还是修改后的值.谢谢!
修改后的值
全局变量是静态的存储的在程序运行时一直占用内存
而局部变量是动态存储的在函数体内用完就释放
当然你用static定义一个变量
他也会一直占用内存知道程序结束以后才释放内存
函数的参数要注意,要按引用或指针传递
#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]