typedef struct
{
char vex[20];
int arcs[20][20];
int vexnum, arcnum;
}MGraph,*mgraph;
本人最近在学习图,在创建图的时候,用的函数是的参数是*&类,结果运行输入顶点和弧的时候就卡死停止了,主函数是
void Create_MG(mgraph &MG){}
int main()
{
mgraph MG;
Create_MG(MG);
return 0;
}
改回网上代码里的*类,主函数改一下就正常了
void Create_MG(MGraph *MG){}
int main()
{
MGraph MG;
Create_MG(&MG);
return 0;
}
想请问一下各位,什么时候用*和&啊
1.我看前面链表和树,都是在定义的时候额外添加一个指针类的,后面定义函数和主函数的时候,就都是用指针类的变量
2.&在链表和树里面,都能直接在定义函数的时候使用,为什么这里只能在主函数使用
3.getchar()的使用,我是看了一下网上代码后自己按着记忆写的,结果因为漏了这2个getchar(),输入顶点的时候就直接循环2次
printf("输入顶点数:");
scanf_s("%d", &MG->vexnum);
printf("输入弧数:");
scanf("%d", &MG->arcnum);
getchar();
for (int i = 1; i <= MG->vexnum; i++)
{
printf("请输入第%d个顶点:", i);
scanf("%c", &MG->vex[i]);
getchar();
}