C++:初始化指向 int 的指针
C++: Initialization of pointer to pointer to int
这是我在Visual Studio 2010上运行的示例代码:
#include <iostream>
int main()
{
int **p(NULL);
}
我收到此错误:error C2059: syntax error : 'constant'
但是如果我将int **p(NULL);
更改为int **p = NULL;
上面的代码就可以正常工作。
在GCC(版本:4.4.2)上检查了这一点,两者都工作正常。我在这里错过了什么?
VC++ 编译器似乎对指针到指针的初始化感到困惑......
例如,这有效
int (**p)(NULL);
这些没有
int *i;
int **p(&i);
int **o(NULL);
虽然这有效
int (**p)(&i);
typedef int* intp;
intp *o(NULL);
等等......模式是每当存在两个**时初始化失败!我猜是一个错误!MSVC 团队中的某个人可能会确认
这要么是编译器本身的错误,要么可能是你做了一些事情并问了别的东西。
MSVC10 支持 C++11 中的一些功能,例如:
int **p1 = nullptr;
int **p2{}; //initialized to nullptr!
您可以尝试其中任何一个。两者都很好。
看起来像,与Visual studio有缺陷,如果我使用c ++编译@ http://codepad.org/并运行以下代码,它可以工作
int main()
{
int **p(NULL);
return 0;
}
使用g++编译器也是如此。
您会收到语法错误:显然未定义 NULL。你应该包括cstdlib。
相关文章:
- 如何将 int 指针转换为浮点指针
- 使用 int 指针的浮点数的位表示形式
- 引用数据的 int 指针
- 为什么我不能像这样直接将 int 分配给 int 指针:int *p = 6;?
- 为什么可以将Char指针变量初始化为字符串,而INT指针变量不能初始化到整数数组
- 将 Int 指针分配给双精度变量
- 如何使用函数参数中的int指针来获取2d数组中最大值的索引并返回指针
- 为什么在int指针的const vetory中脱离了元素
- (C++)通过指针递增,或者:为什么这不起作用?指针->int = 指针->int+1;
- 如何在 C++ 中将浮点指针转换为 int 指针
- 循环中的 int C++指针?
- 当我创建一个int指针并实例化一个数组时,数组在内存中发生了什么
- 将字符阵列转换为INT指针
- 施放INT指针时编译错误
- 如何返回一个 int 指针,指向矢量<int>的开头
- 64位计算机上的int大小和int指针大小
- 如何将 void 指针类型转换为 int 指针,然后在其中存储 int
- 取消对结构的 int 指针地址的引用
- 通过"int *"指针更改"const int"。令人惊讶和有趣
- C/C++ int[] vs int*(指针与数组表示法).有什么区别