首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

静态变量,如何在其他函数使用

2013-12-05 
静态变量,怎么在其他函数使用?书上有一道习题:在函数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方式告诉编译器: 这个变量不允许在其他函数中使用, 如果使用属于误操作, 请编译器检查出来报错.

[解决办法]
定义在函数体中的变量,包括静态的,在别的函数中都是不可见!
[解决办法]
引用:
Quote: 引用:

要共享,就定义在函数外面,全局静态变量

但是习题要求在fn1中定义这个静态变量,而我却想在main函数中输出这个静态变量的值,怎么做呢?难度只有在fn1()函数中才可以输出值查看么?
那就作为fn1的返回值输出呗

热点排行