黑马程序员技术交流社区
标题: C的问题求答案啊,想不明白 [打印本页]
作者: 我叫顺子 时间: 2015-4-10 09:25
标题: C的问题求答案啊,想不明白
main()
{
inti=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d\n",p,q,i,j);
printf("%d,%d\n",i,j);
q运行出来的答案是22,为什么????
作者: shane_west 时间: 2015-4-10 10:12
我运行的q等于21 为何你的等于22.....
作者: 枫宇翔 时间: 2015-4-10 10:34
为什么我的是等于21呢,你的是22呢,不明白
作者: 我叫顺子 时间: 2015-4-10 10:36
难道是编译器的不同?在百度上找了下,是这样解释的7+7+8=22,先计算前两个(++j)的和,第一个++j后,变为6,第二个++j后j变为7,于是(++j)+(++j)先加起来就是14,再算第三个(++j)变为8.
14+(++j)=22.
作者: 我叫顺子 时间: 2015-4-10 10:37
估计是编译器不同
作者: 可乐zj 时间: 2015-4-10 10:47
应该是21吧,6+7+8=21
作者: 可乐zj 时间: 2015-4-10 10:50
为什么前两个是14呢?
作者: 我叫顺子 时间: 2015-4-10 10:51
VC6的答案是22,VS24,这个是编译器的问题,已经明白
作者: 落羽 时间: 2015-4-10 10:53
我的也是 21
作者: 我叫顺子 时间: 2015-4-10 10:53
用到是哪个编译器?
作者: 落羽 时间: 2015-4-10 10:56
用的是vc++6.0
作者: 我叫顺子 时间: 2015-4-10 10:58
为何我的22,郁闷
作者: 落羽 时间: 2015-4-10 11:01
想不明白 先记下来 后来看着看着就明白了
作者: oucding 时间: 2015-4-10 11:04
xcode 运行的结果也是21啊
作者: oucding 时间: 2015-4-10 11:43
另外你可以看看这个网址:http://www.zhihu.com/question/23180989
作者: 1002344082 时间: 2015-4-10 11:43
我的也是21.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |