C语言中的问题新人麻烦详细说明一下?

2025-04-15 02:10:13
推荐回答(2个)
回答1:

你的分析是不对的。
首先是赋值9给a ,有3赋值给全局变量a,在main函数中被屏蔽了,调用max函数时用到的a应该是9。 然后判断a>b的函数 大于b输出返回a 否则返回b 所以返回了9,然后就输出9。
(你可以把这个程序输入计算机中,并在return c;前面加上一句printf("a=%d c=%d\n",a,c);观察实际情况)

回答2:

a=3,这个变量a是全局变量你在main方法再定义一个a,这个变量a是局部变量,一般有一个就近原则,也就是局部变量优先,你在输出的时候传入的参数a实际是a=9的值,而b这个值还是用的是全局变量b的值,所以这段代码应该输出的是9,注意:全局变量可以被这个源码中任意方法调用,但是局部变量,只能是本方法内才能被调用