天天看點

C語言局部變量(普通局部變量,與static局部變量)和全局變量(普通全局變量和static全局變量 )

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main0()//局部變量 
{
	int i,j;//這裡的 i,j兩個都是局部變量
	for (int k=0;k<5;k++)//這裡的 k也是局部變量,一旦for循環結束,k自動釋放 
	{
		printf("%d \n",10);
	 } 
	return 0;
}
void fun()//靜态局部變量 
{
	static int i=1;
	i++;
	printf("%d \n",i);
}
int main1()
{
	fun();
	fun();
	fun();
 } 
 void fun1()
 {
 	extern int i;
 	printf("%d \n",i);
 }
 //int i=1;
 int main2()
 {
 	fun1();
 	printf("%d ",i);
 }
 
           

static全局變量

1.static全局變量和普通全局變量的差別就是作用域不一樣(檔案作用域)

2.extern關鍵字隻适用于普通全局變量

3.普通全局變量,所有檔案都能使用,别的檔案不能使用

4.不同檔案隻能出現一個普通全局變量的定義

5.一個檔案隻能有一個static全局變量的定義,不同檔案間static全局變量,就算名字相同,也沒有關系

普通局部變量

1.在{}内部定義的變量就是局部變量

2.隻有執行到定義變量這個語句,系統才會給這個變量配置設定空間

3.當離開{},這個非static局部自動釋放

4.局部變量的作用域在目前{},離開此{},無法使用

5.不同的{}中,變量名字可以一樣

static局部變量

1.static變量不初始化,預設值為0;

2.static局部變量初始化語句隻執行一次,可以指派多次;

3.static在編譯階段就配置設定空間,在函數還沒有調用時,它就已經存在

4.static隻能常量初始化

5.static局部變量隻有在整個程式結束時,才會自動釋放

普通全局變量

1.在{}外面(函數外面)定義的變量為全局變量

2.隻有定義了全局變量,任何地方都能使用此變量

3.如果使用變量時,在前面找不到此全局變量的定義,需要使用extern聲明後才可以使用

4.全局變量不初始化,預設指派為0

5.聲明隻是針對全局變量,不是針對局部變量

6.全局變量隻能定義一次,可以聲明多次

繼續閱讀