C语言内部静态变量与外部静态变量的区别

静态变量可能是内部的或外部的,具体取决于声明的位置。静态变量存储在初始化的数据段中。
内部静态变量: 内部静态变量定义为具有静态变量的变量,这些变量在函数内部声明并延伸到特定函数的末尾。

语法:

main( )  {   static datatype variable;   // other statements } 

示例:

// C program to demonstrate // Internal Static Variables  #include <stdio.h>  int value();  int main() {     printf("%d", value());     return 0; }  int value() {     static int a = 5;     return a; } 

输出结果:

5 

外部静态变量:外部静态变量是在函数外部声明并为整个文件/程序全局设置的变量。

语法:

static datatype variable;  main() {   statements }  function1() {   statements } 

示例:

// C program to demonstrate // External Static Variables  #include <stdio.h>  int add(int, int);  static int a = 5;  int main() {     int c;     printf("%d", add(a, c)); }  int add(int c, int b) {     b = 5;     c = a + b;     return c; } 

运行结果:

10 

内部静态变量和外部静态变量的区别:

参数 内部静态变量 外部静态变量
关键字 static static
链接 内部静态变量没有链接。 外部静态变量具有内部链接。
声明 内部静态变量在主函数中声明 外部静态变量在主函数之上声明。
比较 内部静态变量类似于自动(局部)变量。 外部静态变量类似于全局(外部)变量。
可见性 内部静态变量在特定函数中是活动的(可见性)。 外部静态变量在整个程序中都是活动的(可见性)。
Lifetime 内部静态变量在函数结束前是活动的(lifetime)。 外部静态变量在整个程序中都是活动的(生命周期)。
范围 内部静态变量具有块范围的持久存储(仅在特定块或函数内工作)。 外部静态变量具有文件范围的永久存储(在整个程序中工作)。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264519.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论