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

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

請問這個程序是在做什么

#include <stdio.h>

void fn()

{

? ? static int x = 1; ? //定義靜態局部變量

? ? x*=2;

? ? printf("x=%d\n",x); ? ??

}


int main()

{

? ? int i;

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? fn();

? ? }

? ? extern int x; ? ? ?//調用外部變量

? ? printf("x=%d\n",x);

? ? return 0;

}

int x=100;


正在回答

4 回答

掌握如何定義靜態局部變量和怎樣調用外部變量的方法

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

定義靜態局部變量static和聲明外部變量extern的用法與理解。

#include <stdio.h>

void fn()???????????????????????????????????????????????????//定義無返回值無參數變量fn()

{

? ? static int x = 1; ? //定義靜態局部變量? ,注意:定義后的靜態局部變量只賦一次初值

? ? x*=2;??????????????????????????????? //x=x*2

? ? printf("x=%d\n",x);????????

}

int main()

{

? ? int i;?????????????????????????????????????????

? ? for(i=0;i<5;i++)??????????????????? //循環調用5次自定義函數fn(),注意:因為fn()中定義了靜態局部變量,這個變量

? ? {????????????????????????????????????????????//只賦一次初始值,所以第2次調用時就不會執行static int x =1;的語句,而是根據

? ? ? ? fn();????????????????????????????????? //第一次的賦值結果x=1*2=2來繼續計算,即第二次結果為x=2*2=4,第三次8,第

? ? }?????????????????????????????????????????? //四次16,第五次32。如果沒有static,那么每次調用都會賦初值,結果也是一樣的

?????????????????????????????????????????????????//即x=1*2=2

? ? extern int x; ? ? ???????????????????//聲明將調用外部變量,這里將X取最后一行定義的外部變量int x=100;結果為100

? ? printf("x=%d\n",x);????????????????//如果沒有extern,則單純的定義一個x,因為沒賦初值,默認為0,結果為0。

? ? return 0;

}

int x=100;

這道題就是讓我們static和extern的作用。

?

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

慕圣6992647

講的非常清楚,謝謝你!
2016-09-16 回復 有任何疑惑可以回復我~

記錄x的數值變化,具體是做什么的要看怎么用

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

開發大腦吧

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

舉報

0/150
提交
取消

請問這個程序是在做什么

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

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

幫助反饋 APP下載

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

公眾號

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