900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【C语言】局部变量 全局变量 局部静态变量 全局静态变量 extern static的区别...

【C语言】局部变量 全局变量 局部静态变量 全局静态变量 extern static的区别...

时间:2021-07-02 01:38:15

相关推荐

【C语言】局部变量 全局变量 局部静态变量 全局静态变量 extern static的区别...

局部变量:

创建在栈区(向下生长),生命周期存在于当前作用域中。

创建时若未初始化,则为随机值。

全局变量:

创建在static区,生命周期一直存在。

创建时若未初始化,则为0。

静态局部变量:

切断了外部链接属性。创建在static区。

创建时若未初始化,则为0。

全局变量和静态变量的存储是放在一块的,初始化了的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。

全局静态变量:

切断了外部链接属性,创建在static区,生命周期一直存在。

创建时若未初始化,则为0。

#include<stdio.h>#include<stdlib.h>intfun1(){staticintn=0;n++;returnn;}intmain(){intret=0;for(inti=0;i<10;i++){ret=fun1();printf("%d\n",ret);}system("pause");return0;}

输出1,2,3……10.

#include<stdio.h>#include<stdlib.h>staticintn;intfun1(){n=0;n++;returnn;}intmain(){intret=0;for(inti=0;i<10;i++){ret=fun1();printf("%d\n",ret);}system("pause");return0;}

输出10个1。

extern:

有外部链接属性,即可检测到外部文件。

static:

切断外部链接属性。

位于static区的变量:

整个生命周期均存在,如全局变量,静态变量。

#include<stdio.h>#include<stdlib.h>intb=20;intmain(){staticinta=10;intc=5;printf("%p\n",&a);printf("%p\n",&b);printf("%p\n",&c);system("pause");return0;}

由此可知,静态变量和全局变量的存储地址很近,在同一区域,即:均存储在static区。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。