数据结构中"&"是什么意思?
刚开始学习数据结构,有个地方不太明白。在函数声明里面有一个语句voidunion(&ListLa,ListLb)这里面&是什么意思?&ListLa和ListLb有什么区别...
刚开始学习数据结构,有个地方不太明白。
在函数声明里面有一个语句
void union(&List La,List Lb)
这里面&是什么意思?
&List La和List Lb有什么区别吗?
打错了
是List &La
======================
声明里面引用La不引用Lb? 展开
在函数声明里面有一个语句
void union(&List La,List Lb)
这里面&是什么意思?
&List La和List Lb有什么区别吗?
打错了
是List &La
======================
声明里面引用La不引用Lb? 展开
3个回答
展开全部
应该是C++里的吧?没有在C语言版的数据结构中看见&吧?
在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针;
在调用时,*p是指指针p指向的那个变量,比如说之前有int a=5;int *p=a;那么p的值是a的地址,也就是指针p指向a,*p则等于a的值,即*p=5。
而&,则是引用,比如说有定义int a=5;再定义int b=&a;那么这里的b则引用a的值,即b=5
,而再给b赋值:b=10,a的值也会变为10。
我想楼主会问*和&的区别,应该是针对函数定义里的参数而言吧,因为这里的这两者比较相似:
举几个简单例子:
先定义有int x=0;和int *p=x;
1、若定义函数: void fun_1(int a){ a=5;} , 则调用:fun_1(x); 之后,x还等于0;因为fun_1函数只改变了形参a的值,a只是fun_1函数里的局部变量,调用fun_1(x)相当于是“a=x;a=5;”,x没变;
2、若定义函数:void fun_2(int &a){ a=5;} , 则调用:fun_2(x); 之后,x等于5;因为这里的a引用了x的值;
3、若定义函数:void fun_3(int *a){ *a=5;} , 则调用:fun_3(p); 之后,x也等于5;因为fun_3函数的参数a是一个指针,相当于a=p;*a则与*p指向同一地址,改变*a即改变*p即x
在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针;
在调用时,*p是指指针p指向的那个变量,比如说之前有int a=5;int *p=a;那么p的值是a的地址,也就是指针p指向a,*p则等于a的值,即*p=5。
而&,则是引用,比如说有定义int a=5;再定义int b=&a;那么这里的b则引用a的值,即b=5
,而再给b赋值:b=10,a的值也会变为10。
我想楼主会问*和&的区别,应该是针对函数定义里的参数而言吧,因为这里的这两者比较相似:
举几个简单例子:
先定义有int x=0;和int *p=x;
1、若定义函数: void fun_1(int a){ a=5;} , 则调用:fun_1(x); 之后,x还等于0;因为fun_1函数只改变了形参a的值,a只是fun_1函数里的局部变量,调用fun_1(x)相当于是“a=x;a=5;”,x没变;
2、若定义函数:void fun_2(int &a){ a=5;} , 则调用:fun_2(x); 之后,x等于5;因为这里的a引用了x的值;
3、若定义函数:void fun_3(int *a){ *a=5;} , 则调用:fun_3(p); 之后,x也等于5;因为fun_3函数的参数a是一个指针,相当于a=p;*a则与*p指向同一地址,改变*a即改变*p即x
展开全部
La的引用。
引用c++里面的概念。相当于指针,但比指针安全。
看函数名是union,这个函数的功能是吧La和Lb合并,然后放到La的空间中去,所以La需要以引用的方式给出来。而Lb不需要修改其内容,所以就不要引用了。
引用c++里面的概念。相当于指针,但比指针安全。
看函数名是union,这个函数的功能是吧La和Lb合并,然后放到La的空间中去,所以La需要以引用的方式给出来。而Lb不需要修改其内容,所以就不要引用了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据结构的定义就是数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系
本身这个概念就很抽象~~~~~~~
本身这个概念就很抽象~~~~~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询