输出涉及增量运算符

时间:2015-05-29 05:53:45

标签: c output

解释输出 。程序已在gnu(gcc 4.9.2编译器)

上编译
#include <stdio.h>

main()
{
    int i=1;
    int arr[]={2,3,4,5};
    int x=(i++<3);

    printf("%d  %d  %d  %d  %d",i,x,++i[arr],i++[arr],i);
}

输出:3 1 6 4 3

1 个答案:

答案 0 :(得分:0)

你在这里有一个&#34;副作用&#34;。根据底层架构,printf()的参数从左到右或从右到左(f.e.HUX)进行评估。

所以你不能说,什么是&#34; THE&#34;结果。您只能使用编译链在操作系统上指定结果。

此行为称为Undefined behavior and sequence points