为什么这个程序输出结果是a=16,b=9,c=7?求大神指点,代码如下
来源: 时间:2024-12-03 08:00
【变量作用域的问题: 当一个代码段有与全局变量同名的变量时,该代码段以局部变量为生效;反之,则以全局变量为生效】
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://www.huajiangbk.com/newsview839772.html
| 上一篇: 人气团队投票结果公布啦 | 下一篇: 不同服务器向同一个服务器发送相同... |
推荐分享

- 1胡椒木盆景从上盆制作到养护,... 74359
- 2明日花キララ:明日花绮罗年度... 54059
- 3明日花キララ(明日花绮罗)经... 31338
- 4五月天婷婷开心六月丁香:音乐... 20473
- 5兰花叶子扭的是什么兰 18743
- 6仙人球“水蜜桃”—又美又仙,... 18099
- 7十大致癌花卉排行榜,哪些花卉... 16678
- 8超简单,3个步骤带你学会毛线... 16121
- 9老师精选05—河北彩花(出道... 15608
- 10李晓明工笔牡丹(魏紫)《牡丹... 14964
分享热点排名




