-1

次のコードでは、gcc と g++ の処理が異なることに気付きました。

#include <stdio.h>
int main(void)
{
    int a = 0;
    int& b = a;
    return 0;
}

gcc は「& の前の解析エラー」を返しますが、g++ はエラーを返しません。

C コンパイラと C++ コンパイラでは int& b の処理が異なるというインタビューに遭遇したことがあります。

4

1 に答える 1

2

これ&は、C の型宣言では意味がないためです。C++ では、変数が参照になることを意味しますが、それらは C には存在しません。

言い換えれば、int& b = a;単に有効な C コードではありません。

于 2012-08-13T13:07:47.400 に答える