黑猪 发表于 2014-3-8 14:36:36

新手求解!!!!!!!!!!!!!!

#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,j,i);
}


我能想到的答案是
p=15
q=21

j=8
i=8

可是运行结果为什么等于
p=15
q=22
j=8
i=8

牡丹花下死做鬼 发表于 2014-3-8 14:36:37

我发的关于这个的帖子
随便找的一个解释

牡丹花下死做鬼 发表于 2014-3-8 14:41:39

我的天啊能不能再发帖之前先在论坛搜索下啊 !!!!!
这个问题 ........
我真心不想回答了

黑猪 发表于 2014-3-8 14:45:01

牡丹花下死做鬼 发表于 2014-3-8 14:41 static/image/common/back.gif
我的天啊能不能再发帖之前先在论坛搜索下啊 !!!!!
这个问题 ........
我真心不想回答了

不会吧!!!!!!!!!,搜那个关键字啊

ok1368739589 发表于 2014-3-8 17:57:45


看懂这个就知道为什么q是22了
#include <stdio.h>
void main()
{
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j);        //++优先级比+高所以相当于++j,++j, 这时j=7,q=j+j=14;
//同理3个加号的话先算前两个,再++j, j=8;q=14+8 = 22!
printf("%d,%d,%d,%d",p,q,j,i);
}

ok1368739589 发表于 2014-3-8 17:58:34

随便问一下你那个vip至尊是干什么的

黑猪 发表于 2014-3-22 19:47:52

买话费送的!!!!
页: [1]
查看完整版本: 新手求解!!!!!!!!!!!!!!