序列点 序列点是程序执行中的一个点,在这个点之前,前面的表达式的求值和副作用已经完成,而后面表达式的求值和副作用还没有发生。C 标准定义以下序列点: (1)运算符&&;运算符||;逗号运算符,;条件运算符?:的第一个子表达式求值结束后; (2)函数调用运算符()中对所有实参数完成求值之后; (3)每个完整表达式结束时。完整表达式包括变量初始化表达式,表达式语句的表达式,return 语句的表达式,if 或 switch 语句中的控制表达式,while 或 do语句的控制表达式,for 语句的所有三个表达式; (4)标准库函数返回之前,标准输入输出函数格式化转换说明符关联动作之后,标准查找函数和排序函数在调用比较函数之前和之后及参数传递之后. 由序列点的定义可知,与运算符&&;或运算符||;逗号运算符,;条件运算符?:等 4 个运算符的左操作数属于前一个序列点,右操作数属于后一个序列点,因此,这 4 个运算符的左操作数的求值要先于右操作数完成
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。