-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 回答