CC++基础:static

CC++基础:static,第1张

文章目录
    • 一、简介
    • 二、linkage
    • 三、extern

一、简介

程序中变量有:

  1. automatic variable:作用域在代码块,stack存储,自动分配或者释放
  2. static variable:作用域在整个工程或者文件,
  3. dynamic variable:new分配的变量
二、linkage
int global = 1000; // static duration, external linkage
static int one_file = 50; // static duration, internal linkage
int main()
{
...
}
void funct1(int n)
{
static int count = 0; // static duration, no linkage
int llama = 0;
...
}
void funct2(int q)
{
...
}

特别注意:funct1里面的count不能在main中使用,这个相当于是函数定义了这个变量之后,这个值一直保持,下次调用的时候也使用count的值,不会再重复定义和赋值。

三、extern

前者没有分配内存,只是声明这是个外部变量,后者在声明的时候进行了初始化,那么就分配对应的内存并初始化

extern int blem; // blem defined elsewhere
extern char gr = 'z'; // definition because initialized

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/674459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存