C语言全局变量和局部变量的一个小问题

请问为什么结果是x=7y=8??... 请问为什么结果是x = 7 y = 8 ?? 展开
 我来答
我是杨凯凯
2014-03-24 · TA获得超过194个赞
知道小有建树答主
回答量:189
采纳率:85%
帮助的人:41.6万
展开全部
x=(a++ + ++a)
因为a是全局变量
a++ 表示a用完后再加一 ++a 表示在使用a之前就加一 (这个a还是全局变量的值3)
所以 x= 3 +4 =7

而b是局部变量
y=(b++ + ++b)
b++ b 变成4

++b继续使用上面变化了的b=4

y=( 3+5) =8
追问
你好,y的值等于8应该是这样来的
先运算++b,让b的值由3变成4,
然后两个b相加 4 + 4 = 8,结果赋值给y,
最后计算b++ b的值变为5

我不清楚的是为什么x那里就不同了
然后我又在VC下试了下,得到的结果都是8
看来是因为编译器的区别造成的
不过还是谢谢你的回答。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林遇傲雪
2014-03-24 · TA获得超过109个赞
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:72.3万
展开全部
你好, 这个全局变量和局部变量没有区别啊, 结果应该都是8 啊, 你确定你运行了吗?结果是一个7,一个8 吗?
更多追问追答
追问
你好,我在linux下试了的,确实是一个7,一个8。
追答
不好意思, 对linux 不怎么了解。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式