黑马程序员技术交流社区

标题: 类似于a++和++a的一道题,求解答!!! [打印本页]

作者: 黑客大王    时间: 2015-5-15 19:39
标题: 类似于a++和++a的一道题,求解答!!!
#include <stdio.h>
main()

int sum,pad,pAd;
sum=pad=5;
pAd=++sum,pAd++,++pad;
printf(“%d\n”,pad);
}
请问这道题为什么答案是7 求解答 谢谢
作者: 黑客大王    时间: 2015-5-15 19:40
今天摸底考试的题目,我基础差 这个做错了
作者: 挑战    时间: 2015-5-15 19:46
我也是啊。。。。
作者: xiongmaoren518    时间: 2015-5-15 20:06
七这个答案是正确答案吗
作者: 祝皓阳    时间: 2015-5-15 20:08
同样今天考试的路过,应该是6
作者: xiongmaoren518    时间: 2015-5-15 20:08
7这个答案是正确答案吗
作者:   张恒宇    时间: 2015-5-15 21:59
本帖最后由   张恒宇 于 2015-5-15 22:03 编辑

这样说吧。。。。sum=pad=5;给是把5赋值给了pad.而在整个计算中只有++pad对pad有影响。。。。所以让pad先加一再调用,得出的结果是6.。。。你的7是错误答案!!!!
如果是printf("%d\n",pAd);那么输出就是7了。

作者: wangvsv    时间: 2015-5-16 01:56
pad=6,pAd=7,sum=6
pAd因为pAd=++sum是6,pAd++是7
pad因为sum=pad=5,++pad等于6
sum因为sum=pad=5,++sum等于6
作者: aSmallStone    时间: 2015-5-17 22:52

#include <stdio.h>
main()

int sum,pad,pAd;
sum=pad=5;
pAd=++sum,pAd++,++pad; //pAd=1+sum=1+5=6,pAd为6在+1,++pad直接先+1  pad=6
printf(“%d\n”,pad);
}
作者: 追随自然    时间: 2015-5-17 23:29
开玩笑吧!
作者: Tuberose    时间: 2015-5-17 23:51
答案肯定是6,整个要求的运算就是pad自加1
作者: Asskicker    时间: 2015-5-18 10:18
本帖最后由 Asskicker 于 2015-5-18 10:19 编辑

++i 与 i++ 的区别  1、++i 的用法(以 a=++i ,i=2 为例)     
先将 i 值加 1 (也就是 i=i+1 ),然后赋给变量 a (也就是 a=i ),      
则最终 a 值等于 3 , i 值等于 3 。     所以 a=++i 相当于 i=i+1 ,a=i  
2、i++ 的用法(以 a=i++ ,i=2 为例)     
先将 i 值赋给变量 a (也就是 a=i ),然后 i 值加 1 (也就是 i=i+1 ),      
则最终 a 值等于 2 ,i 值等于 3 。     所以 a=i++ 相当于 a=i , i=i+1   
3、++i 与 i++     
a=++i 相当于 i++ , a=i        
a=i++ 相当于 a=i , i++  4、++i 与 i++ 单独使用时,相当于 i=i+1     
如果赋给一个新变量,则 ++i 先将 i 值加 1 ,而 i++ 先将 i 赋给新变量。

作者: mingjixiaohui    时间: 2015-5-18 15:35
我支持7#的意见
作者: 可爱的小炒肉    时间: 2015-5-18 22:06
答案是6吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2