欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言之詳解靜態(tài)變量static

 更新時間:2023年04月10日 08:59:30   作者:Yan-英杰  
在C語言中static是用來修飾變量和函數(shù)的,這篇文章詳細介紹了static主要作用,文章中有詳細的代碼實例,需要的朋友可以參考閱讀

關(guān)鍵字static    

在C語言中:

static是用來修飾變量和函數(shù)的

static主要作用為:

1. 修飾局部變量 - 靜態(tài)局部變量

2. 修飾全局變量 - 靜態(tài)全局變量

3. 修飾函數(shù) - 靜態(tài)函數(shù)

 在講解靜態(tài)變量之前,我們應(yīng)該了解靜態(tài)變量和其他變量的區(qū)別:

修飾局部變量

//代碼1
#include <stdio.h>
void test()
{
    int i = 0;
    i++;
    printf("%d ", i);
}
int main()
{
 int i = 0;
    for(i=0; i<10; i++)
   {
        test();
   }
    return 0;
}

運行結(jié)果:

調(diào)用靜態(tài)變量static

//代碼2
#include <stdio.h>
void test()
{
    //static修飾局部變量
    static int i = 0;
    i++;
    printf("%d ", i);
}
int main()
{
 int i = 0;
    for(i=0; i<10; i++)
   {
        test();
   }
    return 0;
}

運行結(jié)果:

對比代碼1和代碼2的效果理解static修飾局部變量的意義.

結(jié)論:

static修飾局部變量 改變了變量的生命周期 ,讓靜態(tài)局部變量出了作用域依然存在,到程序結(jié) 束,生命周期才結(jié)束。

 修飾全局變量 

 
//add.c
int g_val = 2018;
//代碼2
//add.c
extern int g_val;
//test.c
int main()
{
    printf("%d\n", g_val);
    return 0;
}

代碼執(zhí)行:

當給int g_val添加static靜態(tài)變量進行修飾后,發(fā)生報錯

代碼執(zhí)行:

結(jié)論:

全局變量本身是具有外部鏈接屬性的

在A文件中定義的變量,在B文件中可以通過【鏈接】使用

但如果全局變量被static修飾后,這個外部鏈接屬性就變成了內(nèi)部鏈接屬性,這個全局變量只能在本身源文件內(nèi)使用

static可以把外部鏈接屬性,變成內(nèi)部鏈接屬性,使得全局變量作用域變小

 修飾函數(shù)

結(jié)論:

函數(shù)本身是具有外部鏈接屬性的

被static修飾后,外部鏈接屬性變成了內(nèi)部鏈接屬性

使得這個函數(shù)只能在自己所在的源文件內(nèi)部使用,其他源文件無法鏈接使用

到此這篇關(guān)于C語言之詳解靜態(tài)變量static的文章就介紹到這了,更多相關(guān)C語言staiic詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解析內(nèi)存對齊 Data alignment: Straighten up and fly right的詳解

    解析內(nèi)存對齊 Data alignment: Straighten up and fly right的詳解

    對于所有直接操作內(nèi)存的程序員來說,數(shù)據(jù)對齊都是很重要的問題.數(shù)據(jù)對齊對你的程序的表現(xiàn)甚至能否正常運行都會產(chǎn)生影響
    2013-05-05
  • 深入剖析設(shè)計模式中的組合模式應(yīng)用及在C++中的實現(xiàn)

    深入剖析設(shè)計模式中的組合模式應(yīng)用及在C++中的實現(xiàn)

    這篇文章主要介紹了設(shè)計模式中的組合模式應(yīng)用及在C++中的實現(xiàn),組合模式可以清晰地反映出遞歸構(gòu)建樹狀的組合結(jié)構(gòu),需要的朋友可以參考下
    2016-03-03
  • C語言動態(tài)內(nèi)存管理的實現(xiàn)

    C語言動態(tài)內(nèi)存管理的實現(xiàn)

    本文主要介紹了C語言動態(tài)內(nèi)存管理的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++?Date類的具體使用(構(gòu)建,重載等)

    C++?Date類的具體使用(構(gòu)建,重載等)

    本文主要介紹了C++?Date類的具體使用(構(gòu)建,重載等),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • C/C++最短路徑算法之迪杰斯特拉Dijkstra的實現(xiàn)詳解

    C/C++最短路徑算法之迪杰斯特拉Dijkstra的實現(xiàn)詳解

    Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計算一個節(jié)點到其他所有節(jié)點的最短路徑。本文將詳解該算法的圖解與實現(xiàn),需要的可以參考一下
    2022-07-07
  • C語言實現(xiàn)進程間通信原理解析

    C語言實現(xiàn)進程間通信原理解析

    這篇文章主要介紹了C語言實現(xiàn)進程間通信原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • c語言 字符串的拼接和分割實例

    c語言 字符串的拼接和分割實例

    今天小編就為大家分享一篇c語言 字符串的拼接和分割實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • c++實現(xiàn)哈希桶的步驟

    c++實現(xiàn)哈希桶的步驟

    本文主要介紹了c++實現(xiàn)哈希桶的步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • CRC校驗原理及其C語言實現(xiàn)詳解

    CRC校驗原理及其C語言實現(xiàn)詳解

    循環(huán)冗余校驗(Cyclic?Redundancy?Check,?CRC)是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包或計算機文件等數(shù)據(jù)產(chǎn)生簡短固定位數(shù)校驗碼的一種信道編碼技術(shù)。本文主要介紹了CRC校驗原理及其C語言實現(xiàn),感興趣的可以了解一下
    2023-03-03
  • C++中的Z字形變換問題

    C++中的Z字形變換問題

    將一個給定字符串?s?根據(jù)給定的行數(shù)?numRows?,以從上往下、從左到右進行?Z?字形排列,這樣一個需求怎么實現(xiàn)呢,下面小編給大家?guī)砹薈++中的Z字形變換問題,需要的朋友可以參考下
    2022-07-07

最新評論