端坐霜天 发表于 2013-3-23 10:28:47

C语言新手求助 i++ 这个问题

如题,代码如下:
#include <stdio.h>
void main()
{
int i = 5,j =5, p, q;
p = (i++)+(i++)+(i++);
q = (++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p, q, i, j);
}

为什么算出的结果是p=15,q=22啊,这个15和22到底是怎么算出来的呢,这个i没有重新赋值吗,想了老半天都想不通,求各位给个解释,先谢过了!

沉思者 发表于 2013-3-23 11:07:40

我只给你说一句话:printf函数的处理机制是自右向左的!

端坐霜天 发表于 2013-3-23 11:19:37

沉思者 发表于 2013-3-23 11:07 static/image/common/back.gif
我只给你说一句话:printf函数的处理机制是自右向左的!

那为什么q的值会为22呢,你能告诉我它是怎么赋值的吗?

沉思者 发表于 2013-3-23 12:02:09

我这有你篇文章,你看看吧~
看完之后你就会明白了!

feizixiao 发表于 2013-3-23 14:19:10

++在前   和 ++ 在后不一样的。。。。

端坐霜天 发表于 2013-3-23 22:28:18

沉思者 发表于 2013-3-23 12:02 static/image/common/back.gif
我这有你篇文章,你看看吧~
看完之后你就会明白了!

好!谢谢前辈!

沉思者 发表于 2013-3-23 23:13:12

端坐霜天 发表于 2013-3-23 22:28 static/image/common/back.gif
好!谢谢前辈!

我不是什么前辈,也和你一样都是计算机的求学者!
页: [1]
查看完整版本: C语言新手求助 i++ 这个问题