静态存储属性static

news/2024/5/18 15:00:48 标签: static, 静态, 全局变量, 局部变量

全局变量">1. 对于全局变量

作用:将作用域锁定在本程序文件,不可通过extern扩展

int xixi;

生存期:整个程序运行过程

作用域:本程序文件,但可通过外部属性说明(extern)将其作用域扩展到整个程序

static int xixi;

生存期:整个程序运行过程

作用域:本程序文件,作用域不可扩展,在其他程序文件使用外部属性说明(extern)试图扩展其作用域会导致错误

局部变量">2. 对于局部变量

作用:将生存期扩展到整个程序运行过程

{ ... int hoho; ... }

生存期:所在语句块或函数体

作用域:所在语句块或函数体

{ ... static int hoho; ... }

生存期:整个程序运行过程

作用域:所在语句块或函数体

静态局部变量不大好理解举个例子说明">静态局部变量不大好理解,举个例子说明

// example.cpp
#include <iostream>
using namespace std;
void fn();
void main()
{
    fn();
    fn();
    fn();
}
void fn()
{
    static int n = 10;
    cout << n << endl;
    n++;
}

输出结果:

10
11
12

3. 对于函数

作用:将作用域锁定在本程序文件

int f() { return 0; } ;

生存期:整个程序运行过程

作用域:整个程序,但可通过外部属性说明(extern)将其作用域扩展到整个程序

static int f() { return 0; } ;

生存期:整个程序运行过程

作用域:本程序文件


http://www.niftyadmin.cn/n/1186796.html

相关文章

输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来

/* 输入两个整数 n 和 m&#xff0c;从数列1&#xff0c;2&#xff0c;3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来 */#include "stdafx.h" #include<iostream> #include<vector> using namespace std;int length; void Pri…

生存期与作用域

这两个概念乍看很容易混淆&#xff0c;其实并没有那么难以理解和区分。 以变量int a;为例子&#xff1a; 生存期偏向于时间&#xff0c;指的是变量a从被说明和创建开始&#xff0c;直至变量a失效&#xff0c;其占用的空间为释放为止&#xff1b; 作用域偏向于范围&#xff0…

汉诺塔问题(Hanoi塔)

问题 有三个立柱A、B、C。A柱上穿有大小不等的圆盘N个&#xff0c;较大的圆盘在下&#xff0c;较小的圆盘在上。要求把A柱上的圆盘全部移到C柱上&#xff0c;保持大盘在下、小盘在上的规律&#xff08;可借助B柱&#xff09;。每次移动只能把一个柱子最上面的圆盘移到另一个柱…

写的不错的论文

动态规划 吴涛. 动态规划算法应用及其在时间效率上的优化。2008 南京理工大学

linux积累

1、运行Python文件&#xff0c;将文件的输出赋值给一个变量 read -r lines_in_json <<<$(python count_the_lines_in_json.py)

八皇后问题(N皇后问题)

问题&#xff1a;在一个N*N的棋盘上摆放N个“皇后”&#xff0c;且两两不在同一直线和斜线上&#xff0c;求有多少种摆法 解法&#xff1a;使用递归和回溯的思想求解 代码&#xff1a; #include <iostream> using namespace std; const int N 8;// N皇后问题 int map…

flask学习笔记(一)

虚拟环境 每创建一个项目&#xff0c;就一定要给该项目创建一个虚拟环境。 虚拟环境用来隔离项目之间因为版本不同而产生的差异。 Flask服务器搭建步骤 1、从flask包里面导入Flask类 2、实例化Flask。 我们管falsk的实例化对象叫app。括号里面的__name__是flask实例化核心对…

数组元素的三种表示方式

1. 一维数组 int a[8], *pa a; 表示方式01234567下标变量a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]数组名a&#xff08;常量指针&#xff09;*a*(a1)*(a2)*(a3)*(a4)*(a5)*(a6)*(a7)指针变量pa&#xff08;a&#xff09;*pa*(pa1)*(pa2)*(pa3)*(pa4)*(pa5)*(pa6)*(pa7) 2. 多维数组…