C语言的序列点是什么?

goojnag 2011-12-19 10:08:58
...全文
158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
机智的呆呆 2011-12-19
  • 打赏
  • 举报
回复
可以简单理解成 数据库中 commit 操作。
对变量行为状态的更改,可以理解为是在一个缓存里操作,直到一个序列点时,才把对象的状态回写到对象里。
飞天御剑流 2011-12-19
  • 打赏
  • 举报
回复
楼主好像突然间对这些东西这么感兴趣了:


Evaluation of an expression may produce side effects. At certain specified points in the execution sequence called sequence points, all side effects of previous evaluations shall be complete and no side effects of subsequent evaluations
shall have taken place.
狂且 2011-12-19
  • 打赏
  • 举报
回复
序列点(顺序点): 在该点处, 所有的副作用都将在进入下一步之前计算完毕.

当然了一些运算符也有序列点. 任何一个完整的表达式的结束也是个序列点.

关于副作用可以参考: http://topic.csdn.net/u/20111219/11/dc4d589c-2aa4-4c13-890d-12bc2f9cb6e4.html
iamnobody 2011-12-19
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html?60905

参考
iamnobody 2011-12-19
  • 打赏
  • 举报
回复
C/C++语言定义(语言的参考手册)明确定义了顺序点的概念。顺序点位于:
1. 每个完整表达式结束时。完整表达式包括变量初始化表达式,表达式语句,return语句的表达式,以及条件、循环和switch语句的控制表达式(for头部有三个控制表达式);
2. 运算符 &&、||、?: 和逗号运算符的第一个运算对象计算之后;
3. 函数调用中对所有实际参数和函数名表达式(需要调用的函数也可能通过表达式描述)的求值完成之后(进入函数体之前)。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧