1. 程式人生 > >C語言學習筆記----------伊能C語言學習筆記-------靜態區域性變數

C語言學習筆記----------伊能C語言學習筆記-------靜態區域性變數

/*
用static宣告一個變數的作用是:
1.對區域性變數用static宣告,把它分配在靜態儲存區,該變數在整個程式執行期間不釋放,其所分配的空間始終存在。常使用靜態區域性變數在函式呼叫間歇儲存某些變數的值。
2.對全域性變數用static宣告,則該變數的作用域只限於本檔案模組(即被宣告的檔案中)




*/




#include<stdio.h>


#include<stdlib.h>


void go()
{
for (int i = 0; i < 10; i++)


{
int num = 0;   //區域性變數,每次塊語句結束,就自動回收,然後重新分配
//每次的值都為0
static int data = 0;  //靜態區域性變數,,始終在記憶體,一旦定義初始化,即使再次執行初始化的語句,也僅僅只執行一次初始化。
// 生命週期一直沾著記憶體,與程式共存亡。




printf("%p,%p\n", &num, &data);  //輸出地址


num += i;  //num=num +i;


data = data + i;


printf("\n");


}
//下面我們就來看一下,num和data的生命週期有什麼特點呢?
}






void main()


{
go();






system("pause");
}