b?a:b) int main() { int i=6,j=5; printf(%d,,max(i+
答案:2 悬赏:80 手机版
解决时间 2021-02-18 07:12
- 提问者网友:雾里闻花香
- 2021-02-17 15:29
b?a:b) int main() { int i=6,j=5; printf(%d,,max(i+
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-02-17 17:06
max=(a>b)?a:b;等效于if(a>b) {max=a;}else {max=b;}i=6,j=5max(i+=1,++j) : i+=c 等价于 i=i+c || ++j : 加减号放前是先运算后引用,放后面就是先引用后运算max(i+=1,++j)等价于{max(i+1,j); j++;}max(6+1,5)->a==7 b==5 则max=7最后输出7下边是抄的zhangyuestars的在讲课时老师会说“i++是i=i+1的简略形式”.不过很遗憾的告诉你,不是任何时候都可以互换.当一条语句只有“i=i+1”时,此时是可以互换的.但是当需要用到语句的返回值时,就要小心了.i++返回值为i,然后将i+1;i=i+1返回的是i+1(赋值语句之后的i值):如if(i++) a=0;这条语句是说“如果i不等于0,a赋值为0,并且i进行加一操作”,此时等价于:if(i!=0){i++;a=0;}(注意,i++操作是在判断过if条件后做的,不是条件成立后才做,这里的写法结果没错,但严格来说不等价,是错误的,只显示操作的先后关系)if(i=i+1) a=0;这是说“首先将i加1,然后看i是否为0,如果不为0,a赋值为0.此时等价于:i=i+1;if(i) a=0;有人会给你举i++和++i同时出现在一条语句中的例子.个人认为,那种例子没有必要看,也没有必要弄懂.因为那种例子“没有”正确答案(编译器不同,答案不一样),只要记得不要那么使用就对了.作为初学者,应该要知道i++的真正含义,不要单纯记如“它和i=i+1一样”这种结论.你能提这种问题,就比这里其它要求写作业的人好多了~~(那种问题我是不回答的:P)
全部回答
- 1楼网友:拜訪者
- 2021-02-17 18:19
这下我知道了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯