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

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

void fn()這個函數里規定static int x = 1既然為靜態,為何在規定for(i=0;i<5;i++)還執行x*=2這個公式,

#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;



有疑問,想不明白,static 既然為靜態,為啥還要會跟著for(i=0;i<5;i++)這個執行。為什么x不一直都是2呢。

正在回答

1 回答

因為你只設置了,x=1為靜態,而且這個fn()為void,是不返回值貯存的,況且,static靜態只是說只能賦初值一次,并沒有說不能運算,所謂的靜態,只是一種貯存方式而已,并不是他有了就不能改變了

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

bearlala 提問者

非常感謝!
2015-01-31 回復 有任何疑惑可以回復我~
#2

幕布斯6946245

大神,請問怎樣理解靜態與動態
2015-09-09 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

void fn()這個函數里規定static int x = 1既然為靜態,為何在規定for(i=0;i<5;i++)還執行x*=2這個公式,

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

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

幫助反饋 APP下載

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

公眾號

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