关于链表的一个问题
程序代码:
#include <iostream> using namespace std; class A { public: void get() { cout<<"a:"; cin>>a; cout<<endl; } A *next; int a; }; A *head=0; void creat() { A *p1=new A; p1->next=0; A *p2; ::head=p1; int num; cout<<"以零结束"<<endl; cin>>num; while(num) { p1->get(); p2=p1; A *p1=new A; p2->next=p1; cout<<"以零结束"<<endl; cin>>num; } p1->next=0; } void show(A *head) { while(head) { cout<<head->a<<endl; if(head->next) { head=head->next; } system("pause"); } return; } void main() { creat(); show(head); }那个....编译时是没问题的,但是运行时
1.最后只会显示最后一个结点的a值,然后一直显示一个随机数,但是所有指针都有指向了,要不就指向空地址,怎么会有随机指针呢?
2.其实和1差不多,即使一开始就输入0,一样会显示随机指针,怎么回事呢?