运算问题
本帖最后由 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--);
}
这是左结合还是右结合? 这类代码标准未定义,不同的编译器会给出不同的结果,研究这类代码没有意义
https://fishc.com.cn/forum.php?mod=viewthread&tid=67664&extra=page%3D1%26filter%3Dtypeid%26typeid%3D571 https://bbs.csdn.net/topics/390382062 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 不同编译器结果不一样的,除非你去面试可能会提问相关语言的问题
一般情况下没有必要去了解,纯属是浪费时间和精力罢了
页:
[1]