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