亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于課程講解的"2、用static修飾的為靜態變量。。。"

沒有看懂例子。x和i的關系搞不清。。。為什么第一個輸出是fn:x=1,最后是fn:x=10,第一個輸出不應該是fn:x=0嗎?又不是++x或++ihttp://img1.sycdn.imooc.com//57bcd5c400015ddf04160348.jpg

正在回答

4 回答

只進行一次賦值。第一輪:static int x=0; x++ ? ? 得到x=1

因為是靜態變量,第二輪自動跳過賦值x=0,而使用x=1,再進行x++,得到x=2

下面的主函數直接對上面的定義函數引用的10次。同時上面的定義函數也循環了10次。

(花了近一個小時才弄懂,非專業,大神勿噴)

2 回復 有任何疑惑可以回復我~
#1

把心劉 提問者

非常感謝!
2016-08-24 回復 有任何疑惑可以回復我~
#2

沒有夢想的咸魚

關鍵問題是:為什么輸出的第一個是x=1而不是x=0呢? x++的含義不就是先輸出再+1嗎?
2016-10-27 回復 有任何疑惑可以回復我~

static靜態變量, 意思就是只進行一次初始賦值,后面再賦值都是直接跳過的

0 回復 有任何疑惑可以回復我~

如果是:b=a++;那么b等于0

直接a++;等于1

2 回復 有任何疑惑可以回復我~
#1

慕后端9788028

我覺得你說的不是好對 你看關于自增自減運算符的那一章 直接a++還是先輸出的100 #include <stdio.h> void fn() { int b; static int x = 0; //定義靜態局部變量 x++; b=x; printf("x=%d\n",b); } int main() { int i; for(i=0;i<10;i++) { fn(); } //調用外部變量 return 0; } 結果依然是1到10
2016-09-05 回復 有任何疑惑可以回復我~

x++ ?后面輸出就已經是1了

0 回復 有任何疑惑可以回復我~
#1

把心劉 提問者

恩,謝謝
2016-08-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

關于課程講解的"2、用static修飾的為靜態變量。。。"

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號