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自增我不太懂,求大神详细解释 展开
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自增我不太懂,求大神详细解释 展开
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++;//此时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);
}
追问
哦哦懂了谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询