C 操作数的求值顺序
以下程序在C语言中的输出是什么?我基本上不知道main()是先调用t1()还是t2()C 操作数的求值顺序,c,operator-precedence,order-of-execution,C,Operator Precedence,Order Of Execution,以下程序在C语言中的输出是什么?我基本上不知道main()是先调用t1()还是t2() #包括 INTA=40; int t1() { INTA=20; 返回a; } int t2() { INTA=30; 返回a; } int main() { int k=t1()+t2(); printf(“%d”,k); 返回0; } 由于所有函数都返回局部变量的值,因此您的代码与此相同: int a = 40; int t1() { return 20; } int t2() { return 30;
#包括
INTA=40;
int t1()
{
INTA=20;
返回a;
}
int t2()
{
INTA=30;
返回a;
}
int main()
{
int k=t1()+t2();
printf(“%d”,k);
返回0;
}
由于所有函数都返回局部变量的值,因此您的代码与此相同:
int a = 40;
int t1() { return 20; }
int t2() { return 30; }
int main() { printf("%d", t1() + t2()); }
或者更简单一点:
int a = 40;
int main() { printf("%d", 20 + 30); }
或者更简单一些:
int a = 40;
int main() { fputs("50", stdout); }
在第一个版本中,首先计算哪个函数调用子表达式既不明确也不相关。由于所有函数都返回局部变量的值,因此您的代码与此相同:
int a = 40;
int t1() { return 20; }
int t2() { return 30; }
int main() { printf("%d", t1() + t2()); }
或者更简单一点:
int a = 40;
int main() { printf("%d", 20 + 30); }
或者更简单一些:
int a = 40;
int main() { fputs("50", stdout); }
在第一个版本中,先计算哪个函数调用子表达式既不明确也不相关。它还没有决定先调用哪个函数调用子表达式。这与本例中的提示相同。您是否打算更改函数中的全局变量a?不完全是,我正试图找出函数调用的求值顺序,即t1()+t2(),求值顺序是否未定义??如果有三个函数,即t1()+t2()+t3(),该怎么办,在这种情况下,评估的顺序是什么?它还没有决定先调用哪个。这与本例中的提示相同。您是否打算更改函数中的全局变量a?不完全是,我正试图找出函数调用的求值顺序,即t1()+t2(),求值顺序是否未定义??如果有三个函数,即t1()+t2()+t3(),该怎么办,在这种情况下,评估的顺序是什么?