c语言的全局变量和局部变量的问题
#include<stdio.h>externintj=1;voidmain(){voidadd();intsum(intx);intk,s;add();j++;prin...
#include<stdio.h>extern int j=1;void main(){ void add(); int sum(int x); int k,s; add(); j++; printf(“j=%d\n”,j); for(k=1;k<=10;k++) s=sum(k); printf(“s=%d\n”,s); } void add() { int j=0; j++;} int sum(int j) { int x=0; x+=j; return(x);}结果为2,10;求解释
展开
1个回答
展开全部
#include<stdio.h>
extern int j=1;
void main()
{
void add();
int sum(int x);
int k,s;
add();
j++; //j为全局变量 j = j+1
printf("j=%d\n",j);
for(k=1;k<=10;k++)
s=sum(k);
printf("s=%d\n",s);
}
void add()
{
//int j=0; //全局变量j被屏蔽
//检验 //最后输出 还是 j= 2;
int j=2;
j++; // j为局部变量
}
int sum(int j)
{
int x=0; //x为局部变量,每次进入都初始为0。当最后一次循环进入时j=k=10; x= 0 + 10 =10
x+=j;
return(x);
}
extern int j=1;
void main()
{
void add();
int sum(int x);
int k,s;
add();
j++; //j为全局变量 j = j+1
printf("j=%d\n",j);
for(k=1;k<=10;k++)
s=sum(k);
printf("s=%d\n",s);
}
void add()
{
//int j=0; //全局变量j被屏蔽
//检验 //最后输出 还是 j= 2;
int j=2;
j++; // j为局部变量
}
int sum(int j)
{
int x=0; //x为局部变量,每次进入都初始为0。当最后一次循环进入时j=k=10; x= 0 + 10 =10
x+=j;
return(x);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询