int funint x int c;int main int a=4 y ;y=funa++a ;printfd y; int funint xint c int b; ifxcb=1; else ifx==cb=0;else b=-1; returnb ; 为什么是0而不是1
根据C语言标准,在函数调用中,函数参数的求值顺序是未定义的。这意味着编译器可以按任意顺序对函数参数进行求值。因此,在这个例子中,++a和a的求值顺序是未定义的。由于不同的编译器可能采用不同的求值顺序,因此结果可能是0或1。因此,这个程序的行为是不确定的,应该避免这种未定义行为。
原文地址: https://www.cveoy.top/t/topic/gok1 著作权归作者所有。请勿转载和采集!