請(qǐng)問(wèn)這個(gè)程序是在做什么
#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();
? ? }
? ? extern int x; ? ? ?//調(diào)用外部變量
? ? printf("x=%d\n",x);
? ? return 0;
}
int x=100;
2016-10-23
掌握如何定義靜態(tài)局部變量和怎樣調(diào)用外部變量的方法
2016-06-12
定義靜態(tài)局部變量static和聲明外部變量extern的用法與理解。
#include <stdio.h>
void fn()???????????????????????????????????????????????????//定義無(wú)返回值無(wú)參數(shù)變量fn()
{
? ? static int x = 1; ? //定義靜態(tài)局部變量? ,注意:定義后的靜態(tài)局部變量只賦一次初值
? ? x*=2;??????????????????????????????? //x=x*2
? ? printf("x=%d\n",x);????????
}
int main()
{
? ? int i;?????????????????????????????????????????
? ? for(i=0;i<5;i++)??????????????????? //循環(huán)調(diào)用5次自定義函數(shù)fn(),注意:因?yàn)閒n()中定義了靜態(tài)局部變量,這個(gè)變量
? ? {????????????????????????????????????????????//只賦一次初始值,所以第2次調(diào)用時(shí)就不會(huì)執(zhí)行static int x =1;的語(yǔ)句,而是根據(jù)
? ? ? ? fn();????????????????????????????????? //第一次的賦值結(jié)果x=1*2=2來(lái)繼續(xù)計(jì)算,即第二次結(jié)果為x=2*2=4,第三次8,第
? ? }?????????????????????????????????????????? //四次16,第五次32。如果沒(méi)有static,那么每次調(diào)用都會(huì)賦初值,結(jié)果也是一樣的
?????????????????????????????????????????????????//即x=1*2=2
? ? extern int x; ? ? ???????????????????//聲明將調(diào)用外部變量,這里將X取最后一行定義的外部變量int x=100;結(jié)果為100
? ? printf("x=%d\n",x);????????????????//如果沒(méi)有extern,則單純的定義一個(gè)x,因?yàn)闆](méi)賦初值,默認(rèn)為0,結(jié)果為0。
? ? return 0;
}
int x=100;
這道題就是讓我們static和extern的作用。
?
2016-06-09
記錄x的數(shù)值變化,具體是做什么的要看怎么用
2016-06-02
開(kāi)發(fā)大腦吧