有兩個疑問,盼大神幫我解答一下
#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語句在i<5的時候不是應(yīng)該一直在里面循環(huán)直到i=5的時候再輸出x的值嗎?為什么會每一次循環(huán)都能跳出來輸出x的值?*/
? ??extern int x; /*這條語句在上面的for語句之后,執(zhí)行完for語句后不是應(yīng)該繼續(xù)執(zhí)行這條語句后再執(zhí)行printf嗎?*/
? ? printf("x=%d\n",x);
? ? return 0;
}
int x=100;
2017-09-25
因為你每循環(huán)一次,調(diào)用了fn()函數(shù),fn函數(shù)里面有一個printf,所以每調(diào)用一次,fn函數(shù)運行一次,fn里面的printf就會輸出一次