主题:&和*问题
jinjin255690
[专家分:0] 发布于 2007-09-30 01:43:00
Status CreatAscend(LinkList &L,int n)
Status CreatAscend(LinkList L,int n)
请问L加&有什么区别吗?[em3]
回复列表 (共4个回复)
沙发
FreeKid [专家分:60] 发布于 2007-09-30 14:10:00
传递的参数不同,第一个是传引用,第二个是传值。
传引用的时候类似传指针,如果在函数内部改变了L,L本身就会发生改变
传值的时候传入函数的是L的一个副本(并不是L本身),如果此时在函数内部改变L,只是改变了L的副本,对L没有起到任何作用。
还有一点,在参数体积比较大的时候(比如结构,类),传引用效率要高一些。毕竟它不会去复制一遍再传入。
在c++里面,传引用的时候,如果不改变其内容的话,最好在参数前面加const,以防以外的修改。
板凳
8825155600 [专家分:0] 发布于 2007-10-07 13:49:00
不知道在tc.exe上直接用&能否运行,以前学c语言时候没见过,谢谢答复
3 楼
FreeKid [专家分:60] 发布于 2007-10-16 14:04:00
C语言中没有引用一说。
引用不占用内存空间,它只是另一个变量的“别名”。
4 楼
zdwzzu2006 [专家分:260] 发布于 2007-10-16 23:27:00
&L是指针类型的,L是结构体类型的。
我来回复