c语言中关于全局变量的问题

#include<stdio.h>inta=4;intf(intn){intt=0;staticinta=5;这里a是静态局部变量,下面程序里哪里用到它了if(n%2){... #include<stdio.h>
int a=4;
int f(int n)
{int t=0;static int a=5;这里a是静态局部变量,下面程序里哪里用到它了
if(n%2){int a=6;t+ =a++;}
else {int a=7;t+ =a++;}
return t+a++;}
main()
{int s=a,i=0;
for (;i<2;i++) s+ =f(i);
printf("%d\n",s);}答案是28,里面好像有两个不同的a,对哪个a自增我不太懂,求大神详细解释
展开
 我来答
zy1404
推荐于2016-05-08 · TA获得超过1387个赞
知道小有建树答主
回答量:784
采纳率:100%
帮助的人:464万
展开全部
#include<stdio.h>
int a=4;
int f(int n)
{
int t=0;
static int a=5;//这里a是静态局部变量,下面程序里哪里用到它了
if(n%2)
{
int a=6;
t+=a++;//此时a为int a     当i=0  时候 t=t+a++=0+6=6 ,return  时候,6+a++=6+5=11 此时a=6

}
else
{
int a=7;
t+=a++;//此时a为int a    当i=1  t=t+a++=0+7=7,  return 时候,7+a++=7+6=13

}

return t+a++;//此时a为 static int a    
}
void main()
{
int s=a,i=0;//此时a 是全局变量a
for (;i<2;i++) 
{
s+=f(i);// 4+11+13=28

}
printf("%d\n",s);
}
追问
哦哦懂了谢谢!
家驹挂战3
2014-08-30 · TA获得超过170个赞
知道答主
回答量:143
采纳率:75%
帮助的人:67.2万
展开全部
譬如你在main.c里面定义这样一个全局变量
int mVar = 0;

在user.c里面声明引用
extern int mVar;

这样在任何地方改变了,其它地方也改变,也就是说是一个地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式