免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: THEBEST
打印 上一主题 下一主题

什么是sequence point? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2004-06-29 11:46 |显示全部楼层

什么是sequence point?

chg.s C++不错。

在C++里面我们写一个表达式,我们认为只有一个目的:
i=j++;//目的是为了给i赋值
func(i++);//目的是为了调用函数
所以j被加1和i被加1这样的结果,我们认为是“副作用”。这就好比你吃药杀葡萄球菌,但是把大肠杆菌也杀了,这就是副作用。

我们再看一个表达式
j=(i++)+(i++);
i++这个式子的意思大家都知道,就是取i过去的值,然后把i加1。那么编译器开始分析这个式子了。
它可以这样做:取i的值,然后再取i的值(加1的事情当然要做,可是没说什么时候),然后把这两个i加起来,再给i做两次加1操作
也可以这样做:取i的值,然后给i加1,然后再取i的值,...
总之,不同的解释方法,结果不同,你去写这样的表达式,就是玩火。

不知道我有没有把这两个概念解释清楚,如果大家理解了,再去看chg.s写的,就会明白了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP