C++:指向int的指针的初始化

omg*_*ggs 10 c++ visual-studio-2010

以下是我在Visual Studio 2010上运行的示例代码:

#include <iostream>

int main()
{
    int **p(NULL);
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误: error C2059: syntax error : 'constant'

但是,如果我更改int **p(NULL);int **p = NULL;上面的代码编译罚款.

在GCC(版本:4.4.2)上查看此内容,两者都正常.我在这里错过了什么?

haw*_*awk 3

VC++ 编译器似乎对指向指针的指针的初始化感到困惑......

这适用于例如

int (**p)(NULL);
Run Code Online (Sandbox Code Playgroud)

这些不

int *i;
int **p(&i);
int **o(NULL);
Run Code Online (Sandbox Code Playgroud)

这虽然有效

int (**p)(&i);
typedef int* intp;
intp *o(NULL);
Run Code Online (Sandbox Code Playgroud)

等等...模式是每当存在两个 ** 时初始化就会失败!我猜有一个错误!MSVC 团队的某个人也许可以确认