为什么结果是7,3 不是5,5 查了一下说是压栈计算,printf是从右往左计算的,晕了😵💫
3条回答 默认 最新
- threenewbee 2023-12-09 22:22关注
因为c语言的函数参数的求值顺序是未定义行为,不同编译器根本都不同,没法讨论。
这个题目根本就是错的。C语言的未定义行为(undefined behaviour)-CSDN博客 文章浏览阅读2.2w次,点赞30次,收藏86次。什么是未定义行为简单地说,未定义行为是指C语言标准未做规定的行为。编译器可能不会报错,但是这些行为编译器会自行处理,所以不同的编译器会出现不同的结果,什么都有可能发生,这是一个极大的隐患,所以我们应该尽量避免这种情况的发生。特征包含多个不确定的副作用的代码的行为总是被认为未定义。(简单而言, “多个不确定副作用” 是指在同一个表达式中使用导致同一对象修改两次或修改以后 又被引用的自增, 自减_c语言的未定义行为 https://blog.csdn.net/qq_29169813/article/details/51416281解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 c#转安卓 java html
- ¥15 os.listdir文件路径找不到
- ¥15 使用gojs3.0,如何在nodeDataArray设置好text的位置,再go.TextBlock alignment中进行相应的改变
- ¥15 psfusion图像融合指标很低
- ¥15 银河麒麟linux系统如何修改/etc/hosts权限为777
- ¥50 医院HIS系统代码、逻辑学习
- ¥30 docker离线安装mysql报错,如何解决?
- ¥15 构建工单的总账影响在哪里查询或修改
- ¥15 三个简单项目写完之后有重赏之后联系我
- ¥15 python报内存不能read错误