#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.全局變量隻能定義一次,可以聲明多次