|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请问i+++i如何理解?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
3107
人关注过本帖
标题:
请问i+++i如何理解?
只看楼主
加入收藏
阎魔瞳
等 级:
新手上路
帖 子:10
专家分:0
注 册:2007-12-2
楼主
收藏
问题点数:0 回复次数:8
请问i+++i如何理解?
i+++i 怎么理解 i=1; a=i+++i; a为什么是2
从百度帖吧上看来的
++i不是右结合么?理解为a=i+(++i) 则先使i自加,i为2,再引用,i+i=2+2=4。
为什么运行结果会是2?
搜索更多相关主题的帖子:
百度帖吧
如何
2007-12-02 13:24
举报帖子
使用道具
赠送鲜花
死了都要C
来 自:四川成都
等 级:
贵宾
威 望:
13
帖 子:1582
专家分:116
注 册:2006-12-7
第
2
楼
收藏
得分:0
本来不想回答这个问题``看在你ID是我很喜欢的人物上回答一下吧``
i+++i 其实应该是 (i++) + i
当有多个相同的运算符号一起时``编译器按最多的组合来
组成一个运算符``
又如
i+++++i 就是i++
++
+ i 这个很明显就错了``
像这样回产生让你打不到方向的代码``你最好别写``我就永远不回写``
我只写我有%100把握知道是什么结果的代码
如果要让结果是4 `我就先++i 在 i+i
如果我要结果是2 就 i+i 再++i
女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-12-02 13:44
举报帖子
使用道具
赠送鲜花
wubizao
来 自:荆州长大电信
等 级:
新手上路
帖 子:223
专家分:0
注 册:2006-6-24
第
3
楼
收藏
得分:0
C PRIMER PLUS里面写到:
当一个变量多次出现在一个表达式里时,不要将增量运算符或减量运算符运用到它上面
eg:
y=n+++n++;
y得结果会根据编译器得不同而不同
但是肯定得是最后n都会加上2......
在路上走,看见了C,从此爱上了她
2007-12-02 13:45
举报帖子
使用道具
赠送鲜花
zbqf109
等 级:
新手上路
帖 子:289
专家分:0
注 册:2006-12-31
第
4
楼
收藏
得分:0
未定义行为
不同的编译器输出不同的结果
研究这个没意思
不要按老谭的思路学C
那样只会害你
2007-12-02 13:53
举报帖子
使用道具
赠送鲜花
StarWing83
来 自:仙女座大星云
等 级:
贵宾
威 望:
19
帖 子:3951
专家分:748
注 册:2007-11-16
第
5
楼
收藏
得分:0
如果是我我会这么写:
a=i++<<1;
这样应该没问题了吧?优先级很清晰了……a等于2,如果要a等于4的话
a=++i<<1;
专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-02 14:05
举报帖子
使用道具
赠送鲜花
kidd2005
等 级:
新手上路
帖 子:193
专家分:0
注 册:2007-11-2
第
6
楼
收藏
得分:0
不说我也真的会和LZ一样的想啊~~
潜心苦C,却发觉百C不得其解啊~
2007-12-02 15:08
举报帖子
使用道具
赠送鲜花
阎魔瞳
等 级:
新手上路
帖 子:10
专家分:0
注 册:2007-12-2
第
7
楼
收藏
得分:0
原帖由 [bold][underline]死了都要C[/underline][/bold] 于 2007-12-2 13:44 发表 [url=http://bbs.]
" border="0" />[/url]
本来不想回答这个问题``看在你ID是我很喜欢的人物上回答一下吧``
i+++i 其实应该是 (i++) + i
当有多个相同的运算符号一起时``编译器按最多的组合来
组成一个运算符``
又如
i+++++i 就是i++
++
+ i 这个很明显就错了``
...
这个这个,太感谢了!
中科大铁杆fans
2007-12-02 17:13
举报帖子
使用道具
赠送鲜花
zhb_ice
等 级:
新手上路
帖 子:57
专家分:0
注 册:2007-10-6
第
8
楼
收藏
得分:0
不用理解 未定义行为 根据编译器不同而不同
这种代码看到就不用管他 垃圾代码
在工作时写这 就该被炒鱿鱼了
2007-12-03 17:23
举报帖子
使用道具
赠送鲜花
soya
等 级:
新手上路
帖 子:5
专家分:0
注 册:2007-12-6
第
9
楼
收藏
得分:0
a=i+++i; a为什么是2
自右向左结合 (i+)(++i) 第一次执行值自然为2 因为i的值为1,++i是等值运算后再+1。
2007-12-06 11:21
举报帖子
使用道具
赠送鲜花
9
1/1页
1
快速回复:
请问i+++i如何理解?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017669 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved