03-03、static對局部變量的作用

#include <stdio.h>


void test()
{
int a = 0; // 局部變量
// 當使用static來修飾局部變量, 那么會延長局部變量的生命周期, 并且會更改局部變量存儲的位置 , 將局部變量從棧轉(zhuǎn)移到靜態(tài)區(qū)中
// 只要使用static修改局部變量之后, 當執(zhí)行到定義局部變量的代碼就會分配存儲空間, 但是只有程序結(jié)束才會釋放該存儲空間
static int b = 0;
a++; // 1
b++; // 1  2
printf("a = %i\n", a); // 1
printf("b = %i\n", b); // 1
printf("------------\n");
}


void demo(int r)
{
/*
 應(yīng)用場景":
 當某個方法的調(diào)用頻率非常高, 而該方法中更有些變量的值是固定不變的
 那么這個時候就可以使用static來修飾該變量, 讓該變量只開辟一次存儲空間
 這樣可以提高程序的效率和性能
 */
static double pi = 3.1415926; // 固定
double res = pi * r * r;
printf("res = %lf\n", res);
}
int main(int argc, const char * argv[]) {

//    test();
//    test();

for (int i = 0; i < 100; i++) {
    demo(i);
}

return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容