請問這個程序是在做什么
#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;
2016-10-23
掌握如何定義靜態局部變量和怎樣調用外部變量的方法
2016-06-12
定義靜態局部變量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的作用。
?
2016-06-09
記錄x的數值變化,具體是做什么的要看怎么用
2016-06-02
開發大腦吧