C++之局部static变量
来源:互联网 发布:淘宝自动刷单软件 编辑:程序博客网 时间:2024/06/04 17:51
static其他特性不多说,就说一点,当变量为局部static变量时,如果不知道它的特性你会欲哭无泪。今天在debug项目时就发现了这个坑。直接看两个例子吧。
#include<iostream>using namespace std;int cnt=1;void f(){static int test = cnt;cout<<test<<endl;cnt++;}int main(){f();f();f();cout<<cnt<<endl;return 0;}
输出结果可能会让你大吃一惊:
1
1
1
4
再看另一段程序
#include<iostream>using namespace std;int cnt=1;void f(){static int test;test = cnt;cout<<test<<endl;cnt++;}int main(){f();f();f();cout<<cnt<<endl;return 0;}输出:
1
2
3
4
两段不同程序差别在哪呢?局部static变量test在函数f()内定义。但是C++规定,局部static变量只会初始化一次!所以第一个程序中后面调用两次f()都不会初始化test。而第二个程序并不是初始化,而是赋值! static int test =cnt与 static int test; test = cnt是不等价的!!
1 0
- C++之局部static变量
- c中static变量局部变量
- C/C++ static全局变量和static局部变量
- C语言 const static 静态变量 全局变量 局部变量
- static 静态局部变量
- static局部变量
- static静态局部变量
- static修饰局部变量
- Objective-C类-Objective-C 局部静态变量 static
- 【C语言】局部变量、全局变量,局部静态变量,全局静态变量,extern,static的区别
- 局部变量,外部变量,static局部变量,static外部变量
- static变量,全局变量,局部变量
- c语言中的全局变量,局部变量,static,extern
- 从gcc局部static变量初始化看C/C++区别
- C-051.static和extern在局部变量中的作用
- C++——static关键字(全局变量,局部变量,函数)
- C语言——实例041 static 静态局部变量
- C-C++中static的用法全局变量与局部变量
- JavaScript基础总结(未完)
- LeetCode # Longest Common Prefix #
- shell中的字符
- LeetCode 开刷2 ADD Two Numbers
- CodeBlock如何调试带参数的控制台程序
- C++之局部static变量
- vs2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- good-Windows下搭建PHP开发环境(Apache+PHP+MySQL)
- linux下压力测试软件siege的安装与使用详解
- JS中常用的内部对象
- 第六题(格式化)
- 【转发】Visual Studio 2013 如何关闭调试而不关闭IIS Express
- ubuntu 安装 redis 与并配置php扩展
- Debian下MySQL安装