永发信息网

数据结构中*和&的区别是什么

答案:2  悬赏:50  手机版
解决时间 2021-12-30 21:33
数据结构中*和&的区别是什么
最佳答案
应该是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
全部回答
我学会了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
目前哪儿有QQ飞车手游辅助挂机脚本?
袋装酸菜哪个牌子好
开店五金店怎么加入公牛系列
纸上的圆珠笔字要怎么去掉啊?
青白江到南充的班车有几趟、到南充估计要多久
I prefer to work here because salaries are
夏天北斗星在哪个方向
新车才跑100公里空才油门大约3000转对车有影
老婆太厉害,怎么才能做到一晚上做好几次
荧光灯电子镇流器输出电压是多少
单选题Wefoundhim________.A.toleaveB.akind
梦幻西游 法宠认证
到底群发合法不合法?
LOL7天皮肤在游戏里怎么用
百花齐放近义词
推荐资讯
老北京布鞋地址在什么地方,我要处理点事!
如图所示,此图是汽油机的________冲程.在此
各大著名师范大学校训
怎么退出旺旺群
怎样在冬天捕捉小龙虾
偶数和奇数的定义
选出下列各项中加下划线的字解释有误的一项A.
有时是什么有时是什么有时是什么造句
<仙魔战记>好看吗?
为什么抗震设防区的填充墙是脱开形式的??
虚拟机中安装系统必须是镜像文件吗
美国圣诞节期间的的机票什么时候买最便宜
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?