lzting 发表于 2021-2-26 13:12:27

运算问题

本帖最后由 lzting 于 2021-2-26 13:34 编辑

#include <stdio.h>
void main()
{
   int i = 8;
         printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}

这是左结合还是右结合?

人造人 发表于 2021-2-26 13:59:57

这类代码标准未定义,不同的编译器会给出不同的结果,研究这类代码没有意义

51Arduino32 发表于 2021-2-26 14:03:20

https://fishc.com.cn/forum.php?mod=viewthread&tid=67664&extra=page%3D1%26filter%3Dtypeid%26typeid%3D571

人造人 发表于 2021-2-26 14:29:05

https://bbs.csdn.net/topics/390382062

hzx98 发表于 2021-2-26 18:26:13

int i = 8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
VC++ 6.0处理方法是自右向左求参数的值。先求最右边的 -i-- 值为-8;再往左求 -i++ 值为-8; 然后依次 i-- 值为8; i++ 值为8;--i 值为7;++i 值为8;
最终输出结果为 8 7 8 8 -8 -8

巴巴鲁 发表于 2021-2-27 09:29:59

不同编译器结果不一样的,除非你去面试可能会提问相关语言的问题
一般情况下没有必要去了解,纯属是浪费时间和精力罢了
页: [1]
查看完整版本: 运算问题