#include<iostream>
using namespace std;
struct student
{
int num;
char name[20];
float score[3];
student* next;
}stu={10001,"Bob",89,90,91},stu2={10002,"Alice",88,89,90};
void print(student* p)
{
cout<<p->num<<p->name<<p->score[0]<<p->score[1]<<p->score[2];
p=p->next;
}
int main()
{
student* head=&stu;
stu.next=&stu2;
stu2.next=NULL;
student* p=head;
do{
print(&stu);}
while(p!=NULL);
return 0;
}
题目描述
题目来源及自己的思路
相关代码
粘贴代码文本(请勿用截图)
print(&stu);
改爲print(p);
&stu 是取地址,而非指針變量。即使傳入函數,其地址也不可修改。故傳入指針變量
p
。void print(student* p)
改爲void print(student* &p)
在函數内對變量值做修改不會實際影響調用函數的實參,故使用引用傳遞,這樣在函數内的修改才會實際作用于調用函數的實參。