内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

C語言全局變量基礎(chǔ)學(xué)習(xí)-創(chuàng)新互聯(lián)

??通過學(xué)習(xí),我對全局變量以及靜態(tài)本地變量有個簡單基礎(chǔ)的認(rèn)識。以下是我的學(xué)習(xí)筆記,與大家分享,如果有不妥的地方,歡迎大家在評論區(qū)指出來,一起學(xué)習(xí)進步?。?!

創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、安丘網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、購物商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為安丘等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。文章目錄
  • 1.全局變量
    • 1.1定義
    • 1.2生存期與作用域
    • 1.3全局變量的初始化
    • 1.4被隱藏的全局變量
    • 1.5局部變量
  • 2.靜態(tài)本地變量
    • 2.1定義
    • 2.2生存期與作用域
    • 2.3實際上靜態(tài)本地變量是一種特殊的全局變量
  • 3.返回指針的函數(shù)
    • 3.1返回本地變量的指針
    • 3.2返回全局變量和靜態(tài)本地變量的地址是安全的
    • 3.3返回malloc的指針
    • 3.4最好的方法是 返回傳入的指針
  • 4.全局變量tips
    • 4.1不要使用全局變量的來傳遞函數(shù)的參數(shù)和結(jié)果
    • 4.2盡量避免使用全局變量

1.全局變量 1.1定義

??定義在函數(shù)外面的變量。

1.2生存期與作用域

??具有全局(任何函數(shù)內(nèi)部)的生存期和作用域。
??代碼測試

#include#include//定義一個全局變量
int gAll=12;

void f(void);

int main()
{printf("in %s gAll=%d\n", __func__,gAll);
    f();
    f();
    printf("agn in %s gAll=%d\n", __func__,gAll);
    return 0;
 } 

void f(void)
{printf("in %s gAll=%d\n", __func__,gAll);
    gAll+=2;
    printf("agn in %s gAll=%d\n", __func__,gAll);
}

??輸出結(jié)果

in main gAll=12
in f gAll=12
agn in f gAll=14
in f gAll=14
agn in f gAll=16
agn in main gAll=16

??注意
??輸出所在函數(shù)的函數(shù)名用 func ,
??前后是 2個英文半角狀態(tài)的“_”。

1.3全局變量的初始化

??自動:沒有初始化的會自動初始化為0,指針初始化為NULL;
??人為:用編譯時刻已知的值對全局變量初始化,在main函數(shù)之前初始化。

1.4被隱藏的全局變量

??如果函數(shù)內(nèi)部有與全局變量同名的變量,則全局被隱藏。
??小范圍與大范圍定義了一樣的變量名,大范圍變量被隱藏,執(zhí)行小范圍的變量。
??代碼測試

#include#includeint gAll=12;    //定義全局變量,大范圍

void f(void);

int main()
{printf("in %s gAll=%d\n", __func__,gAll);
    f();
    printf("agn in %s gAll=%d\n", __func__,gAll);
    return 0;
 } 

void f(void)
{int gAll=1;   //函數(shù)內(nèi)部定義同名的本地變量,小范圍
    printf("in %s gAll=%d\n", __func__,gAll);
    gAll+=2;
    printf("agn in %s gAll=%d\n", __func__,gAll);
}

??輸出結(jié)果

in main gAll=12 ?? ? //全局變量
in f gAll=1 ?? ? ?? //函數(shù)內(nèi)部的本地變量
agn in f gAll=3 ? ? ?? //函數(shù)內(nèi)部的本地變量
agn in main gAll=12 ?? //重新返回main,全局變量取消隱藏

1.5局部變量

(1)局部變量只能在定義的區(qū)域以及他的子區(qū)域中使用;
(2)包括:一個函數(shù)內(nèi)部定義的函數(shù)、函數(shù)形參、復(fù)合語句即{ }大括號中的變量;
(3)同一個區(qū)域不能定義相同的名字;
(4)不同區(qū)域定義相同的名字變量,在本質(zhì)沒有任何關(guān)系。

2.靜態(tài)本地變量 2.1定義

在本地變量定義時前面加上static修飾符就變成了靜態(tài)本地變量。

2.2生存期與作用域

??生存期:全局,當(dāng)函數(shù)離開時,靜態(tài)本地變量會繼續(xù)保持他最后的值;
?? 作用域:定義函數(shù)內(nèi)部;(static的意思是局部區(qū)域訪問)
?? 初始化:靜態(tài)本地變量的初始化只會在第一次進入這個函數(shù)的時候做,以后進入函數(shù)時,會保持上次離開函數(shù)的值。
??代碼測試

int gAll=12;

void f(void);

int main()
{f();
    f();
    f(); 
    return 0;
 } 

void f(void)
{static int all=1;
    printf("in %s all=%d\n", __func__,all);
    all++;
    printf("in %s all=%d\n", __func__,all);
}

??輸出結(jié)果

in f all=1
in f all=2
in f all=2
in f all=3
in f all=3
in f all=4

2.3實際上靜態(tài)本地變量是一種特殊的全局變量

??靜態(tài)本地變量和全局變量的地址挨著,即他們兩個在內(nèi)存中放在一起,在內(nèi)存相同的區(qū)域
??代碼測試

#include#includeint gAll=12;

void f(void);

int main()
{f();
    return 0;
 } 

void f(void)
{static int all=1;
    int b=2;
    printf("in %s &gAll=%p\n", __func__,&gAll);
    printf("in %s &all=%p\n", __func__,&all);
    printf("in %s &b=%p\n", __func__,&b);
}

??輸出結(jié)果

in f &gAll=0000000000403010
in f &all=0000000000403014?//全局變量的地址 挨著 靜態(tài)本地變量的地址
in f &b=000000000062FDEC

3.返回指針的函數(shù) 3.1返回本地變量的指針

?? 這種做法是危險的,因為當(dāng)你離開這個函數(shù),本地變量的空間會被free掉,當(dāng)定義下一個變量的時候,會直接放在這個內(nèi)存空間里面,所以可能還是原來的值,也可能不是原來的值。
??代碼測試

#include#includeint *g(void);
void f(void);

int main()
{int *p=g();
    printf("*p=%d\n",*p);
    f();
    printf("*p=%d\n",*p);
    return 0;
 } 

int *g(void)
{int i=1;
    return &i;
}

void f(void)
{int k=12;
    printf(" k=%d\n",k);
}

??輸出結(jié)果

*p=1
k=12
*p=12 原來地址被后來定義的k占用

3.2返回全局變量和靜態(tài)本地變量的地址是安全的

??他們的指針和函數(shù)沒有關(guān)系

3.3返回malloc的指針

??內(nèi)存是安全的,但是容易出現(xiàn)問題

3.4最好的方法是 返回傳入的指針 4.全局變量tips 4.1不要使用全局變量的來傳遞函數(shù)的參數(shù)和結(jié)果 4.2盡量避免使用全局變量

?? “豐田汽車的案子”代碼中使用了大量的全局變量,無法維護

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前題目:C語言全局變量基礎(chǔ)學(xué)習(xí)-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://www.rwnh.cn/article38/dososp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作、網(wǎng)站制作定制網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
北安市| 盐城市| 谢通门县| 乌拉特中旗| 长阳| 平顶山市| 罗甸县| 静乐县| 左权县| 赤峰市| 静乐县| 社旗县| 南乐县| 新昌县| 重庆市| 桃江县| 彭水| 米脂县| 福泉市| 西安市| 广南县| 郧西县| 安庆市| 东方市| 汉沽区| 壤塘县| 馆陶县| 喀喇沁旗| 丹棱县| 开化县| 连云港市| 清新县| 抚宁县| 礼泉县| 广南县| 小金县| 肃宁县| 清徐县| 得荣县| 砚山县| 湘阴县|