日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

static關(guān)鍵字+變量的作用域和生命周期

 路人甲Java 2022-06-17 發(fā)布于北京

作用域:一個(gè)變量或者函數(shù)起作用的范圍

生命周期:一個(gè)變量什么時(shí)候被釋放

static關(guān)鍵字:修飾局部變量、修飾全局變量、修飾函數(shù)

1.局部變量的作用域

局部變量的作用域是離他最近的一個(gè)代碼塊,比如函數(shù)體的大括號(hào)、if for while循環(huán)體的代碼塊。超出這個(gè)代碼塊則無(wú)法訪問。

 1 #include<stdio.h>
 2 int all;
 3 int main()
 4 {
 5     
 6     if(1)
 7     {        
 8         int a = 10;  //a 的作用域就是第7-9行 
 9     }
10     printf("%d\n",a);//無(wú)法訪問a 
11     
12     test();
13  } 
14  
15  void test()
16  {
17      int b = 6;         //b 的作用域就是第17-20行 
18      printf("%d\n",b);
19      
20  }

2.全局變量的作用域

全局變量的作用域?yàn)檎麄€(gè)程序,如果在main.c定義了一個(gè)全局變量,如果在其他c文件使用這個(gè)全局變量則使用extern 聲明即可

3.局部變量的生命周期

如上面程序中a的生命周期是理他最近的一個(gè)函數(shù),main函數(shù)結(jié)束,a被釋放。

如上面程序中b的聲明周期是離他最近的一個(gè)函數(shù),test函數(shù)結(jié)束,b被釋放。釋放的意思就是該變量定義在棧上,函數(shù)被調(diào)用結(jié)束,則屬于函數(shù)的棧被收回。

4.全局變量的生命周期

整個(gè)程序結(jié)束,全局變量all才會(huì)被釋放

5.函數(shù)的作用域

整個(gè)程序所有c文件都可訪問

當(dāng)使用static關(guān)鍵字修飾局部變量、修飾全局變量、修飾函數(shù)時(shí),他們的作用域和生命周期恢復(fù)發(fā)生一些改變。(函數(shù)的生命周期不變,都是伴隨整個(gè)程序)

 1 #include<stdio.h>
 2 static int all;//靜態(tài)全局變量
 3 
 4 static void test()//靜態(tài)函數(shù)
 5  {
 6      int b = 6;     
 7      printf("%d\n",b);
 8      
 9  }
10 int main()
11 {
12     
13     if(1)
14     {        
15     static    int a = 10;  //靜態(tài)局部變量 
16     }
17     printf("%d\n",a);//無(wú)法訪問a 
18     
19     test();
20  } 
21  

1.static類型的局部變量

作用域不變,生命周期擴(kuò)大伴隨整個(gè)程序

2.static類型的全局變量

作用域縮小為當(dāng)前c文件可見。生命周期伴隨整個(gè)程序

3.static類型的函數(shù)

作用域縮小為當(dāng)前c文件

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多