| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1156 人关注过本帖
标题:[求助] ++a 和 a++的问题
只看楼主 加入收藏
a5788639
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-17
收藏
 问题点数:0 回复次数:12 
[求助] ++a 和 a++的问题


可能问题非常简单 但是我好难理解 小弟才学C语言两天 请各位师兄莫要笑话

int a=3,b,c;
b=(a++)+(a++);
c=(a++)*(++a);
printf("%d\n",a);
printf("%d\n",b);
printf("%d",c);

这段中

a++ 是不就是 a值+1既是4 a++本身还是3
++a 是a值+1既5 后++a值变成5

如果这样算的话
那么b算出来是5

而且c=++a*a++的话和c=a++*++a 算出c的结果应该不相同

  

请师兄们详解一下

就是两个问题 b 的算法 和 c的具体算法的顺序和a++ 和 ++a的问题

谢谢。!

[[it] 本帖最后由 a5788639 于 2008-11-17 05:51 编辑 [/it]]
搜索更多相关主题的帖子: 麻烦 师兄 
2008-11-17 05:48
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
又是一个被谭浩强毒害了的可怜孩子…………

根据C语言的规定,在两个顺序点之间(暂且可以认为是一个表达式内——当然是有特例的,比如&&,||,逗号表达式,函数调用),多次改变一个变量的行为,是标准没有规定的。编译器可以生成任何行为的程序,从什么都不做到发射核弹都可以。所以这个问题根本就没有研究的必要。就是这样。
2008-11-17 06:12
danielxu
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2008-10-30
收藏
得分:0 
a=7,b=6,c=36;我认为b=(a++)+(a++)变量a在b中没有改变直接相加,b表达式结束后a=5,c表达式中先对a变量增1即6,6*6=36,而后再对a变量加1操作,即7.不知道正确否,请高手指点。
2008-11-17 08:55
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
[bo][un]danielxu[/un] 在 2008-11-17 08:55 的发言:[/bo]

a=7,b=6,c=36;我认为b=(a++)+(a++)变量a在b中没有改变直接相加,b表达式结束后a=5,c表达式中先对a变量增1即6,6*6=36,而后再对a变量加1操作,即7.不知道正确否,请高手指点。


你没看我的话么??
2008-11-17 09:04
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
老谭的书不错,便宜的不说,很适合入门。不过二楼说得也正确支持下

简单的生活
2008-11-17 09:23
cuizhihui
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-11-27
收藏
得分:0 
实际运行了一下,确实是下面的结果:
a=7,b=6,c=36

还是没有看明白到底是怎么运算的?
哪位高手能一步一步给讲解一下,多谢了!
2008-11-17 09:30
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
说到便宜,上星期在学校旧书店买到一本think in java,居然只要13块,当时简直高兴地睡觉都会笑醒了……
2008-11-17 09:32
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 7# 的帖子
等过了几天,在另外一个旧书店,发现同样一本书,居然只要5元钱。回去之后做梦都在后悔……
2008-11-17 09:34
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
不可能……绝对是不可能的,因为原价128
2008-11-17 09:35
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 9# 的帖子
世界上没有什么是不可能的,有的旧书摊,书和杂志都是论斤卖的,你那书有几斤?——希望不要被气得吐白沫……
2008-11-17 09:56
快速回复:[求助] ++a 和 a++的问题
数据加载中...
 
   



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

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