首页 > 分享 > 为什么这个程序输出结果是a=16,b=9,c=7?求大神指点,代码如下

为什么这个程序输出结果是a=16,b=9,c=7?求大神指点,代码如下

【变量作用域的问题: 当一个代码段有与全局变量同名的变量时,该代码段以局部变量为生效;反之,则以全局变量为生效】

c=func(&a,b); 执行过程:
int func(int *p,int a)
{


a++; //a=3+1=4
*p=a+b; //*p=4+0=4 //b是全局的,默认初始化为0
b++; //b=0+1=1
return(*p+a); //return (4+4) = 8
}
之后a=4,c=8,全局的b=1,局部的b=3

b=func(&c,a); 执行过程:
int func(int *p,int a)
{


a++; //a=4+1=5
*p=a+b; //*p=5+1=6 //b是全局的,此时值为1
b++; //b=1+1=2
return(*p+a); //return (6+5) = 11
}
之后a=4,c=6,局部的b=8,全局的b=2,

a=func(&b,c); 执行过程:
int func(int *p,int a)
{


a++; //a=6+1=7
*p=a+b; //*p=7+2=9 //b是全局的,此时值为2
b++; //b=2+1=3
return(*p+a); //return (9+7) = 16
}
之后a=16,c=6,局部的b=9,全局的b=3,

打印输出结果:printf("a=%d,b=%d,c=%d",a,b,c);
都是输出局部的a/b/c,所以答案是 16,9,6 ; 而不是 16,9,7

相关知识

C语言:输出所有的水仙花数
执行下列程序后,其输出结果是
下列代码输出结果是
以下程序的输出结果是( )。 void main() { int a=20,b=
《JAVA语言程序设计》期末考试试题及答案
以下程序的输出结果是
mysql期末考试选择题
执行下列语句后,输出的结果是( ).int a=3,b=5;float c=b/
以下程序的输出结果是( ) #include main( ) { int x=1
在JAVA语言中,下列代码运行的结果是(选一项)() int a=1,b=3,c

网址: 为什么这个程序输出结果是a=16,b=9,c=7?求大神指点,代码如下 https://m.huajiangbk.com/newsview839772.html

所属分类:花卉
上一篇: 人气团队投票结果公布啦
下一篇: 不同服务器向同一个服务器发送相同