变量

变量

全局变量

普通全局变量

作用范围

  • 普通全局变量的作用范围是程序所有地方

  • 只不过用之前需要声明extem int num

  • 注意声明的时候,不要赋值
    生命周期

  • 程序运行的整个过程,直到程序结束

#include <stdio.h>
//在函数外面定义的变量就是普通的全局变量
int a = 100; 

int main(){
	return 0;
}

静态全局变量 static

作用范围

  • static 限定静态全局变量只能在它定义的.c源文件有效
    生命周期

  • 在整个程序的运行过程中,一直存在

  • 定义静态的如果不赋初值,默认为0

//定义全局变量的时候用 static 修饰
static int b = 100; 

局部变量

普通全局变量

作用范围

  • 在函数中定义的,在函数中有效

  • 再复合语句定义的,在复合语句中有效
    生命周期

  • 在函数调用之前,局部变量不占用空间,调用函数的时候,
    才为局部变量开辟空间,函数结束了,局部变量就释放了

int main(){
	int a = 10; //普通局部变量 
	{
		int a = 10; //普通局部变量 
	} 
	return 0;
}

静态的局部变量

作用范围

  • 在它定义的函数或者复合语句有效

生命周期

  • 第一次调用函数时,开辟空间赋值,函数结束后,不释放
  • 以后在调用函数时,就不再为其开辟空间,也不赋初值,用的是以前的那个变量
int main(){
static int b = 10; //静态局部变量 
	{
		static int  a = 10; //静态局部变量 
	} 
	return 0;
}

变量重名问题

  • 在同一作用范围内,不允许变量重名
  • 作用范围不同的可以重名
  • 局部范围内,重名的全局变量不起作用(就近原则)

外部函数

  • 定义的普通函数,都是外部函数
  • 即函数可以在程序的任何一个文件调用

内存函数

  • static 限定了函数的作用范围,在定义的.c中有效

内部函数外部函数的区别

  • 外部函数:在所有地方都可以调用
  • 内部函数:只能在所定义的.c中的函数调用
posted @ 2022-03-20 23:14  阿肆啊  阅读(92)  评论(0编辑  收藏  举报