急!!C++引用!

来源:百度知道 编辑:UC知道 时间:2024/06/18 17:29:15
#include<iostream.h>
#include<stdlib.h>
class Node
{
public:
int data;
Node *next;
};
void creat(Node *&f,int n) //这里为什么一定要用&(这里是地址还是引用?),去掉为什么出错 !
{
if(n<0)
{
cout<<"ERROR!"<<endl;
exit(1);
}
if(n==0){f=NULL;return;} //为什么void可以用return!!
cout<<"输入:"<<n<<"个整数"<<endl;
int x;
cin>>x;
f=new Node;
f->data=x;
f->next=NULL;
Node *p;
for(int i=1;i<=n-1;i++)
{
cin>>x;
p=new Node;
p->data=x;
p->next=f;
f=p;
}
}

void Pint(Node *f)
{
while(f!=NULL)
{
cout<<f->data<<" ";
f=f->next;
}
cout<<endl;
}

void main()
{
Node *head;
int n;
cout<<"输入N:"<<endl;

1.显示你这是输入一个链表,之所以在那里要使用&,是引用你的head是一个指针,而你的参数必须是一个指向head的指针,就是说是一个指向了一个指针的指针,所以这里前一个*说明后来的事指针,然后&说明是对这个指针的引用。
2.void是不返回值,你直接用return没有返回任何值怎么不可以?
3.你这个程序还有错

void creat(Node *&f,int n) //这里为什么一定要用&(这里是地址还是引用?),去掉为什么出错 !
这是快截键的引用
if(n==0){f=NULL;return;} //为什么void可以用return!!
这是个判断语句,为什么能用return因为达到n=0这个条件他是要跳出这个方法

一楼说的很正确。