Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 操作数的求值顺序_C_Operator Precedence_Order Of Execution - Fatal编程技术网

C 操作数的求值顺序

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;

以下程序在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; }

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(),该怎么办,在这种情况下,评估的顺序是什么?