Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将对象地址分配给指针在main之外不起作用_C++_Pointers - Fatal编程技术网

C++ 将对象地址分配给指针在main之外不起作用

C++ 将对象地址分配给指针在main之外不起作用,c++,pointers,C++,Pointers,此代码显示编译错误:“head”未命名类型 #include<iostream> using namespace std; class Node{ int val; Node *next; }; Node *head; Node a; head=&a; int main() { } #包括 使用名称空间std; 类节点{ int-val; 节点*下一步; }; 节点*头; 节点a; head=&a; int main() { } 然而,

此代码显示编译错误:“head”未命名类型

#include<iostream>
using namespace std;
class Node{
         int val;
         Node *next;
};
Node *head;
Node a;
head=&a;
int main()
{
}
#包括
使用名称空间std;
类节点{
int-val;
节点*下一步;
};
节点*头;
节点a;
head=&a;
int main()
{
}
然而,这一个编译得很好

#include<iostream>
using namespace std;
class Node{
        int val;
        Node *next;
};
int main()
{
Node *head;
Node a;
head=&a;
}
#包括
使用名称空间std;
类节点{
int-val;
节点*下一步;
};
int main()
{
节点*头;
节点a;
head=&a;
}
有什么我不知道的吗。我检查了,但声明全局对象或指针似乎并不违法。谢谢。

您不能在全局范围内进行分配(
head=&a;

您可以执行以下初始化操作:

Node a;
Node *head = &a;

赋值语句不能存在于函数体之外。您可以将全局版本转换为初始化