注意:C语言中没有指定同一运算符的多个操作数或者某函数各个参数的求值顺序,如果代码的执行结果和求值顺序有关,都是不好的程序设计风格。
来源:互联网 发布:企业成本核算软件 编辑:程序博客网 时间:2024/05/18 03:05
注意:C语言中没有指定同一运算符的多个操作数的计算顺序,也没有指定某函数各个参数的求值顺序。
如: x = f() + g () 可以先计算 f(),也可以先计算 g(),如果 f 或者 g会改变另一函数所使用的变量的值,也就是说 x 的结果可能会依赖于这两个函数的计算顺序,这时,为了保证要求的顺序,应该将中间结果保存在临时变量中。
同理,printf("%d %d\n", ++n, power(2, n))在不同编译器中会有不同的结果,取决于n的自增运算在power调用前还是调用后,解决的方法是在printf语句前就进行++n运算。
此外还有a[i] = i++等。函数调用、嵌套赋值语句、自增和自减都可能产生类似的副作用——对表达式求值的过程中,修改了某些变量的值。
在任何一种编程语言中,如果代码的执行结果和求值顺序有关,都是不好的程序设计风格。
0 0
- 注意:C语言中没有指定同一运算符的多个操作数或者某函数各个参数的求值顺序,如果代码的执行结果和求值顺序有关,都是不好的程序设计风格。
- c语言中运算符的优先级和求值顺序
- 【C】没有注意系统对函数参数的求值顺序的处理方法
- C/C++中操作符的优先级和求值顺序
- C/C++中操作符的优先级和求值顺序
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 关于C/C++种运算符的优先级,结合性以及操作数的求值顺序
- 操作符的优先级和求值顺序——C语言
- 运算符的优先级、结合性、操作数的求值顺序
- 表达式的求值顺序
- 谜题1.6 操作符的优先级和求值顺序
- 关于lisa参数求值的顺序
- 关于C语言中printf函数的参数执行顺序
- Hibernate学习总结
- python使用正则表达式编写网页小爬虫
- C++:const_cast类型转换
- 多python随机数函数的分析
- 天池大数据竞赛——UI特征统计
- 注意:C语言中没有指定同一运算符的多个操作数或者某函数各个参数的求值顺序,如果代码的执行结果和求值顺序有关,都是不好的程序设计风格。
- nyoj-1055-小鱼儿的难题
- Activity跳转Flag详解
- 数据结构之排序_1
- yayaxueyu
- C++11新特性(原封不动转载待查)
- 第22题
- 斜率优化DP以及本人对原作的补充遐想
- iOS-XML解析之-GDataXMLNode