静态变量,如何在其他函数使用
静态变量,怎么在其他函数使用?书上有一道习题:在函数fn1()中定义一个静态变量n,fn1()中对n的值加1,主函数
静态变量,怎么在其他函数使用?
书上有一道习题:在函数fn1()中定义一个静态变量n,fn1()中对n的值加1,主函数调用fn1()函数10次,显示n的值。
我写的代码:
#include<iostream>
using namespace std;
void fn1()
{
static int i;
i++;
return;
}
int main()
{
cout<<"i="<<i<<endl;
for(int i=1;i<11;++i)
fn1();
return 0;
}
程序报错,说main函数不可以使用变量i,我的困惑是:变量i是静态变量,它的生产期是随程序诞生而诞生,随程序结束而结束啊。
怎么在main函数中输出i的值呢?我的代码中的i就是习题的n的意思。
[解决办法]要共享,就定义在函数外面,全局静态变量
[解决办法]作用域的问题
虽然计算机知道你声明了一个static 变量, 但是对于main来说,它压根就看不到你声明的静态变量。
[解决办法]static变量和全局变量在运行时存储方式是一样的, 唯一的区别就是static方式告诉编译器: 这个变量不允许在其他函数中使用, 如果使用属于误操作, 请编译器检查出来报错.
[解决办法]定义在函数体中的变量,包括静态的,在别的函数中都是不可见!
[解决办法]那就作为fn1的返回值输出呗