有兩個(gè)疑問(wèn),盼大神幫我解答一下
#include <stdio.h>
void fn()
{
? ? static int x = 1; ? //定義靜態(tài)局部變量
? ? x*=2;
? ? printf("x=%d\n",x); ? ??
}
int main()
{
? ? int i;
? ? for(i=0;i<5;i++)
? ? {
? fn();
? ?? }/*for語(yǔ)句在i<5的時(shí)候不是應(yīng)該一直在里面循環(huán)直到i=5的時(shí)候再輸出x的值嗎?為什么會(huì)每一次循環(huán)都能跳出來(lái)輸出x的值?*/
? ??extern int x; /*這條語(yǔ)句在上面的for語(yǔ)句之后,執(zhí)行完for語(yǔ)句后不是應(yīng)該繼續(xù)執(zhí)行這條語(yǔ)句后再執(zhí)行printf嗎?*/
? ? printf("x=%d\n",x);
? ? return 0;
}
int x=100;
2017-09-25
因?yàn)槟忝垦h(huán)一次,調(diào)用了fn()函數(shù),fn函數(shù)里面有一個(gè)printf,所以每調(diào)用一次,fn函數(shù)運(yùn)行一次,fn里面的printf就會(huì)輸出一次