C语言大神。21题怎么解释
展开全部
这个比较麻烦,要平时积累经验。\r\n\r\n因为语法没错,程序可以正常运行,但结果不一定一样。
追问
😖😖
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int b;
b = a++; //a值为3,++优先级低于=,所以,先将a赋值给b,然后a自加1
//所以此时b为3,a为4
fun(b); // a=a+a;所以a为8;b=a+a,为8;但此b为fun函数栈上的变量b,非main函数中的b
//所以,fun(b)结束后,a为8(因为a是全局变量,在fun中已被赋值为8;main函数中的b值
//保持不变,仍为3。
printf("\na=%d,b=%d", a, b);
//输出结果为"a=8,b=3".,答案为A。
}
{
int b;
b = a++; //a值为3,++优先级低于=,所以,先将a赋值给b,然后a自加1
//所以此时b为3,a为4
fun(b); // a=a+a;所以a为8;b=a+a,为8;但此b为fun函数栈上的变量b,非main函数中的b
//所以,fun(b)结束后,a为8(因为a是全局变量,在fun中已被赋值为8;main函数中的b值
//保持不变,仍为3。
printf("\na=%d,b=%d", a, b);
//输出结果为"a=8,b=3".,答案为A。
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询