第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于C語言中“局部變量作用域”的問題

關(guān)于C語言中“局部變量作用域”的問題

C
繁星淼淼 2019-06-07 07:06:18
void add(int);main(){int num=3;add(num); //調(diào)用add()函數(shù) printf("%d\n",num); //輸出變量num值為3 }void add(int num){num++; //num自增1 printf("%d\n",num); //輸出變量num值為4 }為什么不對呢?哪里不對呢?
查看完整描述

4 回答

?
白衣非少年

TA貢獻1155條經(jīng)驗 獲得超0個贊



這涉及到變量的作用域,局部變量從作用域的聲明到函數(shù)的結(jié)束,變量在子函數(shù)中,其他同名變量將被臨時屏蔽。就是這樣。在add函數(shù)中,sum In add會暫時阻塞sum In main,但是這兩個sum與變量不一致,可以在內(nèi)存中打印出它們的地址來證明。在本例中,add sum接受值3,增加到4,然后輸出4,當(dāng)add函數(shù)結(jié)束時,main中的sum恢復(fù),但是它們與變量不一致,所以main中的sum沒有變化

查看完整回答
反對 回復(fù) 2019-06-08
?
BIG陽

TA貢獻1859條經(jīng)驗 獲得超6個贊

這與局部變量作用域無關(guān)。

它是參數(shù)方法。

add函數(shù)是通過傳遞一個值而不是指針來調(diào)用的。

因此,在add中更改num的值不會影響主函數(shù)中的num值。


查看完整回答
反對 回復(fù) 2019-06-08
?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

不同的函數(shù)使用相同的變量名,它們表示不同的數(shù)據(jù),分配不同的內(nèi)存,互不干擾,也不會引起混淆。add函數(shù)的num在函數(shù)執(zhí)行后釋放內(nèi)存。打印函數(shù)打印主函數(shù)的編號。如果將打印函數(shù)放在add函數(shù)中,則打印值為4

查看完整回答
反對 回復(fù) 2019-06-08
?
有只小跳蛙

TA貢獻1824條經(jīng)驗 獲得超8個贊

add函數(shù)里面的num是另一個變量,和主函數(shù)中的num不一樣。它們兩都是臨時變量,除了變量名相同沒有什么關(guān)系。

add函數(shù)只是通過參數(shù)的方式獲取了主函數(shù)里面的num的值,也就是給了add中的num初始值,但是并沒有把計算后的值返回給主函數(shù)中的num,所以主函數(shù)中的num并沒有被改變

1

2

3

4

5

6

7

8

9

10

11

12

13

main()

{

   int num=3;

   add(num); //調(diào)用add()函數(shù) 

   printf("%d\n",num); //輸出變量num值為3 

}

 

//把變量名換一下就明白了,這個變量和num是兩回事,和局部變量作用域沒有半毛錢關(guān)系

void add(int aa)

{

    aa++; //aa自增1 

    printf("%d\n",aa); //輸出變量aa值為4 

}


 


查看完整回答
反對 回復(fù) 2019-06-08
  • 4 回答
  • 0 關(guān)注
  • 581 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號