有道C++计算题不会算,请大侠们帮帮忙啊!

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:21:06
4、下面程序的运行结果是 。
int a=3,b=5;
max(int a, int b)
{int c;
c=a>b?a:b;
return(c);
}
main()
{int a=16;
printf(“%d\n”,max(a,b));
}
为什么没有给b副值啊

b是全局变量,已经赋了值5
虽然定义了全局变量a,但是在main()函数中定义的局部变量a把它给屏蔽了,
所以,参预max函数运算的是局部变量a和全局变量b,此时a=16,b=5
max函数求a,b两个变量中较大者,所以反回的值是16。

最后的结果就是16了。

16

16
max是求二者最大值
此时a=16,b=5
所以输出16

局部变量16把全局的a屏蔽了. 16