C高階2:變量作用域與生存期

變量的作用力和生存期相當(dāng)于變量的"攻擊范圍"和"生命力"形娇。

1. 作用域

1.1 作用域是什么?

在什么范圍內(nèi)可以訪問這個(gè)變量。

1.2 作用域怎么用?

試一下下面的代碼

#include <stdio.h>

int main(){
    int n =0;
    for(int i=0;i<10;++i){
       n += i;
    }
    printf("%d %d\n",i,n);
}
#include <stdio.h>

int main(){
    {
       int n =0;
       printf("%d\n",n);
    }
    printf("%d\n",n);
}
#include <stdio.h>

int main(){
    {
       int n =0;
       printf("%d\n",n);
    }
    {
       int n =10;
       printf("%d\n",n);
    }
}

局部變量作用域在變量定義的大括號(hào)以內(nèi)眶拉。

2. 生存期

2.1 生存期是什么筐咧?

變量什么時(shí)候出現(xiàn)到什么時(shí)候滅亡。
對(duì)于局部變量脆贵,生存期與作用域一致医清。

2.2 生存期怎么用?

#include <stdio.h>
int* func(){
    int n=10;
    int* p = &n;
    return p;
}

int main() {
    int* p = func();
    // printf("p = %p\n",p);
    printf("*p = %d\n",*p);
    return 0;
}
#include <stdio.h>
void print_array(int arr[],int n){
    for(int i=0;i<n;++i){
        printf("%d ",arr[i]);
    }
    printf("\n");
}
int* scanf_array(int* n){
    scanf("%d",n);
    int arr[*n];
    for(int i=0;i<*n;++i){
        scanf("%d",&arr[i]);
    }
    return arr;
}
int main(){
    int n;
    int *arr = scanf_array(&n);
    print_array(arr,n);
}

不要返回局部變量的地址卖氨,不要返回局部變量的地址会烙,不要返回局部變量的地址。

3. 同名隱藏

在相同作用域中筒捺,同名變量會(huì)報(bào)錯(cuò)柏腻;在不同的作用域中,內(nèi)部變量會(huì)隱藏外部變量系吭。

#include <stdio.h>
int main() {
    int n = 1;
    {
        printf("n = %d\n",n);
        int n=10;
        printf("n = %d\n",n);
        n = 20;
    }
    printf("n = %d\n",n);
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末五嫂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肯尺,更是在濱河造成了極大的恐慌沃缘,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蟆盹,死亡現(xiàn)場離奇詭異孩灯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)逾滥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門峰档,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寨昙,你說我怎么就攤上這事讥巡⌒饽郏” “怎么了逆航?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長墓怀。 經(jīng)常有香客問我捉蚤,道長抬驴,這世上最難降的妖魔是什么炼七? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮布持,結(jié)果婚禮上豌拙,老公的妹妹穿的比我還像新娘。我一直安慰自己题暖,他們只是感情好按傅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胧卤,像睡著了一般唯绍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上枝誊,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天况芒,我揣著相機(jī)與錄音,去河邊找鬼侧啼。 笑死牛柒,一個(gè)胖子當(dāng)著我的面吹牛堪簿,可吹牛的內(nèi)容都是我干的痊乾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼椭更,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼哪审!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起虑瀑,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤湿滓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后舌狗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叽奥,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年痛侍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朝氓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡主届,死狀恐怖赵哲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情君丁,我是刑警寧澤枫夺,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站绘闷,受9級(jí)特大地震影響橡庞,放射性物質(zhì)發(fā)生泄漏较坛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一扒最、第九天 我趴在偏房一處隱蔽的房頂上張望燎潮。 院中可真熱鬧,春花似錦扼倘、人聲如沸确封。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爪喘。三九已至,卻和暖如春纠拔,著一層夾襖步出監(jiān)牢的瞬間秉剑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國打工稠诲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侦鹏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓臀叙,卻偏偏與公主長得像略水,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劝萤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 對(duì)于很多人來說床嫌,北上廣深的戶口是值得用一生的努力去交換的跨释。為了你的下一代,請(qǐng)死守北上廣也不僅僅只是個(gè)口號(hào)厌处!而我的朋...
    那個(gè)假紳士閱讀 578評(píng)論 0 0
  • 《平凡的世界》第三部一到三章鳖谈,第三部,也就是這一系列書的結(jié)局版阔涉,在這一部中缆娃,不似第二部的那么輝煌,他的這部有很多的...
    莫小璃閱讀 172評(píng)論 0 0
  • 人至中年郭毕,或是油膩或是喪,但他們不是一類人 過年后兩個(gè)月函荣,我都沒能休假显押,天天都在上班扳肛、加班,自然也沒...
    柳和梁閱讀 492評(píng)論 1 0
  • 1乘碑、「自私」一詞常被用來形容只為自己打算挖息、只圖個(gè)人的利益的人。在傳統(tǒng)觀念里兽肤,這是一個(gè)很貶的貶義詞套腹。 但《國富論》中...
    青墨QINGMO閱讀 166評(píng)論 0 5
  • 山竹 名字真的很可愛 誰知道,竟是個(gè)風(fēng)王 帶來了可怕的禍害
    顧仲平閱讀 291評(píng)論 0 4