为什么这个程序输出结果是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明日花キララ:明日花绮罗年度... 23573
- 2明日花キララ(明日花绮罗)经... 13805
- 3家庭养花知识大全 家庭养花有... 9211
- 4家庭养花风水知识 家庭养花“... 8926
- 5兰花叶子扭的是什么兰 8747
- 6君子兰什么品种最名贵 十大名... 8059
- 7五月天婷婷开心六月丁香:音乐... 7824
- 8十大致癌花卉排行榜,哪些花卉... 7706
- 9秋天养花,掌握这5点养花知识... 7483
- 10【花卉知识 】养花须知:新手... 7084
分享热点排名




