C++ 将对象地址分配给指针在main之外不起作用
此代码显示编译错误:“head”未命名类型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() { } 然而,
#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;
赋值语句不能存在于函数体之外。您可以将全局版本转换为初始化