【发布时间】:2014-10-17 08:56:12
【问题描述】:
以下程序在 C 中的输出是什么?我基本上很困惑 main() 是先调用 t1() 还是 t2()。
#include <stdio.h>
int a=40;
int t1()
{
int a=20;
return a;
}
int t2()
{
int a=30;
return a;
}
int main()
{
int k=t1() + t2();
printf("%d",k);
return 0;
}
【问题讨论】:
-
它还没有决定先调用哪个。在这种情况下与小费相同。
-
您是否打算更改函数中的全局变量 a?
-
不完全是我试图弄清楚函数调用的评估顺序是什么,即 t1()+t2(),评估的顺序是否未定义??如果有 r 三个函数怎么办即 t1()+t2()+t3(),在这种情况下,评估的顺序是什么?
标签: c operator-precedence order-of-execution