-10
int main()
{
    extern long long a;
    a=100000000000; //10 raised to power 11
    printf("%lld",a);
    return 0;
}
int a;

出力: 100000000000

int a は変数 a に 4 バイトを割り当てる定義を意味しますが、extern long long a は変数の型を指定する宣言であり、メモリ割り当てとは関係ありません。したがって、値 10^11 を a(4 バイトの大きさ) に代入すると、オーバーフローが発生するのではないでしょうか?

4

1 に答える 1