应该是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
相关文章
-
keep on doing 和keep doing 的区别
2023-10-20 17:23 阅读(554) -
公民权利与公民基本权利的区别
2023-10-20 16:54 阅读(602) -
DISC和DISK有什么区别?
2023-10-20 16:40 阅读(569)
1 大背头和小背头的区别
593 阅读
2 placeholder和value的区别是什么
537 阅读
3 " 不可理喻"与" 不可思议" 的区别是什么?
588 阅读
4 白洞是什么?和黑洞有什么区别?
616 阅读
5 机遇与机会的区别是什么呢
580 阅读