0

次の 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;
}
4

1 に答える 1

4

すべての関数がローカル変数の値を返すため、コードは次のようになります。

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); }

最初のバージョンでは、どの関数呼び出し部分式が最初に評価されるかは未指定であり、無関係です。

于 2014-10-17T08:58:23.823 に答える