作品:
int GlobalVar = 5;
int * LPVar[] = {&GlobalVar};
不起作用:
int GlobalVar = 5;
int * LPVar[]; // int * LPVar[1] doesn't work too
LPVar[0] = &GlobalVar; // errors here
------ 构建开始:项目:指针,配置:发布 Win32 ------ 正在编译... ilovpointers.cpp .\ilovpointers.cpp(9):错误 C2466:无法分配常量大小的数组 0 .\ilovpointers.cpp(9):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int .\ilovpointers.cpp(9) : error C2040: 'LPVar' : 'int []' 在间接级别上与 'int *[1]' 不同。\ilovpointers.cpp(9 ) : error C2440: 'initializing' : cannot convert from 'int *' to 'int []' 没有对数组类型的转换,尽管有对数组的引用或指针的转换 构建日志保存在“file:// f:\Visual Studio C++\Project1\pointers\pointers\Release\BuildLog.htm" 指针 - 4 个错误,0 个警告 ========= 构建:
编辑:
我解决了,但有问题。
#include <iostream>
#include <stdio.h>
using namespace std;
int GlobalVar = 5;
int * LPVar[1];
void main()
{
LPVar[0] = &GlobalVar;
printf("%i", *LPVar[0]);
cin.get();
}
LPVar 是一个全局数组,为什么当我把它放在定义之后它不起作用?