| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1316 人关注过本帖
标题:有关C的自增和自减的复和运算..求详细解释!谢谢!
只看楼主 加入收藏
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 9楼 FlynnLan
这种东西没必要深究的。
编译器依赖,不是什么语言的内涵
2011-06-08 10:37
FlynnLan
Rank: 2
等 级:论坛游民
帖 子:36
专家分:60
注 册:2011-5-26
收藏
得分:0 
回复 5楼 loveshuang
如果是从后面开始加的话..那a++赋给a值为2,返回值为3,那么到了--a的时候a的初始值不是3吗?自减以后a的值变为2..

低调做人!低调做事!高调学编程!
2011-06-08 10:42
FlynnLan
Rank: 2
等 级:论坛游民
帖 子:36
专家分:60
注 册:2011-5-26
收藏
得分:0 
回复 11楼 voidx
但也涉及到优先级的问题吧..我是了用JAVA和C#结果都为6,

低调做人!低调做事!高调学编程!
2011-06-08 10:44
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:3 
回复 13楼 FlynnLan
跟优先级没啥关系,对它产生影响的主要是编译器表达式树生成算法,你要是写一个这样的 10 项式分析起来会很痛苦。
所以说最重要的是知道不要写这样的代码,谁看到这样的代码都不会想读下去。
除非你就是要研究混乱编程
2011-06-08 11:01
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1686
专家分:4252
注 册:2007-12-27
收藏
得分:2 
强迫自己去透彻理解一个疯子所说的话的后果只能是自己疯掉。
C语言标准没有描述这个问题的正确分析方式,所以这个问题没有正确的分析方式,或者说怎么分析都算正确的----所谓无意义是这个意思。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2011-06-08 11:11
FlynnLan
Rank: 2
等 级:论坛游民
帖 子:36
专家分:60
注 册:2011-5-26
收藏
得分:0 
回复 14楼 voidx
虽然还是有点搞不懂,不过谢谢你!
可能我还是初学者吧,对算法和数据结构还没有深入了解和学习,我会努力的!

低调做人!低调做事!高调学编程!
2011-06-08 11:18
枪手问鼎英超
Rank: 2
等 级:论坛游民
帖 子:34
专家分:20
注 册:2011-6-1
收藏
得分:0 
b=3+1+2=6;
因为自增自减的优先级高于加法运算,所以先对a做自增自减的运算,
所以a的依次取值为3,1,2,然后即可求出b的值
2011-06-08 11:23
pengle
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2011-6-7
收藏
得分:0 
回复 楼主 FlynnLan
编译系统 不 一致 ,有 的先运算再自增减,有的先自增减再运算.
2011-06-08 12:41
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:3 
LZ喜欢写和编译器有关的代码吗?
程序代码:
#include <stdio.h>

int main(void) {
    int i, j = 1;
    i = (++j) + (++j) + (++j);
    printf("%d\n", i);
    return 0;
}
在Code::Blocks中的运行结果:
图片附件: 游客没有浏览图片的权限,请 登录注册

在VS2010中的运行结果:
图片附件: 游客没有浏览图片的权限,请 登录注册

代码相同,但在不同的实现中运行结果却是不一样的。
只要LZ记住,在一个表达式中要避免2个以上相同变量的自增或自减操作。


[ 本帖最后由 lz1091914999 于 2011-6-8 20:58 编辑 ]

My life is brilliant
2011-06-08 20:55
FlynnLan
Rank: 2
等 级:论坛游民
帖 子:36
专家分:60
注 册:2011-5-26
收藏
得分:0 
回复 19楼 lz1091914999
倒不是喜欢..关于自增自减本身我能理解,只是被这自增自减复合运算困扰了几天。
尝试寻求了很多能够解释答案的方法,
听了你们的回复后,虽然能解释运行的结果,但我试着换了另外一段复合运算的代码,你们的解释好像又行不通了...
谢谢你的回复,以后我会避免写这样的代码的

低调做人!低调做事!高调学编程!
2011-06-08 21:12
快速回复:有关C的自增和自减的复和运算..求详细解释!谢谢!
数据加载中...
 
   



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

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