在C语言中,ststic是用来修饰变量和函数的
文章目录
前言
static
1.
修饰局部变量
-
称为静态局部变量
2.
修饰全局变量
-
称为静态全局变量
3.
修饰函数
-
称为静态函数
一、修饰局部变量
static修饰局部变量-称为静态局部变量,
static修饰局部变量,局部变量生命周期变长。
1.未使用static的对照
代码示例
#include <stdio.h>
int Run()
{
int x = 1;
x++;
printf("%d\n", x);
return 0;
}
int main()
{
int i = 0;
while (i < 5)
{
Run();
i++;
}
return 0;
}
运行结果
2
2
2
2
2
main函数中进入while循环后,第一次运行Run函数时x赋值为1,x++;使x值为2。打印一次x的值,跳出Run函数后,x值不保留。第二次进入Run函数,x又赋值为1,x++;使x值为2。第三次,第四次,第五次x值依旧。
2.使用static定义局部变量
代码示例
#include <stdio.h>
int Run()
{
static int x = 1; //x是一个静态的局部变量
x++;
printf("%d\n", x);
return 0;
}
int main()
{
int i = 0;
while (i < 5)
{
Run();
i++;
}
return 0;
}
运行结果
2
3
4
5
6
将x定义为静态局部变量后,main函数中进入while循环后,第一次运行Run函数时x赋值为1,x++;使x值为2。打印一次x的值,跳出Run函数后,x值保留。第二次进入Run函数,x值为上一次运行后的值2,x++;使x值为3,跳出Run函数后,x值保留。第三次,x值为4。第四次,x值为5。第五次x值为6。
二、修饰全局变量
static修饰全局变量-称为静态全局变量
static修饰全局变量,改变了变量的作用域,让静态变量只能在自己所在的源文件内部使用,出源文件无法使用。
1.未使用static的对照
代码示例
#include <stdio.h>
int main()
{
extern int Num; //extern声明外部符号
printf("%d\n", Num);
return 0;
}
/
#include <stdio.h>
int Num = 123;
123
2.使用static定义全局变量
代码示例
#include <stdio.h>
int main()
{
extern int Num; //extern声明外部符号
printf("%d\n", Num);
return 0;
}
/
#include <stdio.h>
static int Num = 123;
运行结果出错
三、修饰函数
static修饰函数-称为静态函数
static修饰函数改变了函数的连接属性(外部连接属性变为内部连接属性)
1.未使用static的对照
代码示例
#include <stdio.h>
extern int Add(int,int); //extern声明外部符号
int main()
{
int a = 2;
int b = 6;
int Sum = Add(a,b);
printf("%d\n", Sum);
return 0;
}
#include <stdio.h>
int Add(int x, int y)
{
int z = x + y;
return z;
}
运行结果
8
2.使用static修饰函数
代码示例
#include <stdio.h>
extern int Add(int,int); //extern声明外部符号
int main()
{
int a = 2;
int b = 6;
int Sum = Add(a,b);
printf("%d\n", Sum);
return 0;
}
#include <stdio.h>
static int Add(int x, int y)
{
int z = x + y;
return z;
}
运行结果
总结
本文简单介绍了static关键字的作用。以及不同情况下的运行结果。