c++ 中的是&什么意思?在c语言中应该如何使用

voidcreateGraph(MGraph&G)//输入图{inti,j,k,w;printf("InputNO.ofnodesandedgesofFork:");sc... void createGraph(MGraph &G) //输入图
{
int i,j,k,w;

printf("Input NO.of nodes and edges of Fork:");
scanf("%d,%d",&G.node,&G.edge);
getchar();
printf("\n\n");
printf("Input nodes of Fork:");
for(i=1;i<=G.node;i++)
{
scanf("%c",&G.vexs[i]);
getchar();
}
printf("\n\n");
printf("Input the nodes of an edge and its weight:\n");
for(k=0;k<G.edge;k++)
{char v1,v2;
scanf("%c", &v1);getchar();
scanf("%c", &v2);getchar();
scanf("%d", &w); getchar();
i=Location(G,v1);
j=Location(G,v2);
G.edges[i][j]=w;
G.edges[j][i]=w;
}
}
像这个函数中的参数为什么是&G,而不是G就行了呢?(MGraph是我提前定义的一个结构体)
展开
 我来答
燕枫Jd
2008-12-09 · 超过17用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:55万
展开全部
&G是引用的意思,今天才老师讲了,也就是说它是给实参取别名,C++支持引用,但TURBLE C不支持,给你个简单的看看就知道了,
#include "stdio.h"

void test(int &x)
{
x=x+10;
}
void main()
{
int j=20;
test(j);
printf("%d",j);
}
要是你把&x变成x,就得不到30,而只能得20。
冒着被老师逮的危险给你说,给我加分吧!不说了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fuchuangbob
2008-12-08 · TA获得超过898个赞
知道小有建树答主
回答量:879
采纳率:0%
帮助的人:733万
展开全部
void createGraph(MGraph &G)这句C里边编译应该不通过,这里的&是引用类型,C里边没有引用类型,有指针类型,对一个变量前面加&表示取它的地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wubenhua2008
2008-12-08 · TA获得超过934个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:460万
展开全部
因为你的函数没有返回G,如果传的是G在这个函数改变的在回到主调函数出就没有了,而用&G,是引用,在这个函数里做的改变在主调函数里就会改变了

传参数的问题,三种传参数:值传递、引用传递、指针传递、后两种效果一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友37aa9f3
2008-12-08 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:107万
展开全部
&G是指针所指向变量的地址空间。而G只是一个变量名,输入参数必须通过指针地址才能找到那个数的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mom7V
2008-12-08 · TA获得超过183个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:84.8万
展开全部
取得变量地地址.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式