| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 419 人关注过本帖
标题:本题不是很懂 敬请各位帮帮忙!
只看楼主 加入收藏
min860140560
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-3-19
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:5 
本题不是很懂 敬请各位帮帮忙!
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);
}
讲解上的结果是15,24,8,8
运行的是15,22,8,8
哪个是正确的啊?请仔细说明  谢谢!
搜索更多相关主题的帖子: 护肤品 
2014-02-27 00:38
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
没啥实际意义
要是考试到可以研究一下

DO IT YOURSELF !
2014-02-27 00:49
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:4 
把 未定义行为 当知识点,什么当成标准,
你的那么书应该被扔掉
2014-02-27 08:40
ksil
Rank: 2
等 级:论坛游民
帖 子:15
专家分:31
注 册:2014-3-1
收藏
得分:4 
这是出题人的一种想当然的做法,++j这种行为是不能以(++j)+(++j).....这种算法定义的,这种算法相加的次数越多和想象中的离得越远,...........。当然i++是这样是行的通的,(不管重复多少次都是先运算后赋值)。按照出题人的思路这个题应该这样写,
程序代码:
#include<stdio.h>
main(){
  int i=5,j=5,p,q;
  p=(i++)+(i++)+(i++)+(i++)+(i++)+(i++)+(i++);
  q=(++j,++j,++j,++j,++j,++j,++j)*7;
  printf("%d,%d,%d,%d",p,q,i,j);
}
呵呵,小菜的一点看法

C学习中。。
2014-03-01 21:46
w851777025
Rank: 7Rank: 7Rank: 7
来 自:新疆
等 级:黑侠
威 望:2
帖 子:135
专家分:584
注 册:2014-1-19
收藏
得分:4 
书上的结果和你运行的结果不一样很正常,不同的系统运算顺序是不一样的。跟编译器也有一定的关系
2014-03-01 23:12
hyddpjh
Rank: 2
等 级:论坛游民
帖 子:9
专家分:14
注 册:2014-2-27
收藏
得分:4 
前自增和后自增,最好忽略掉其不同,而且最好单独成句,不要作为其他句子的一部分来使用。这什么破书啊,误人子弟。
2014-03-03 12:33
快速回复:本题不是很懂 敬请各位帮帮忙!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015925 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved