This topic has been archived. It cannot be replied.
-
工作学习 / 专业技术讨论 / 个人认为,指针和引用是几乎一回事。只是在特定条件下,用某种类型方便一些。不知为何,领导强调一定要用引用?
-gx0408(neustone);
2007-1-31
(#3469090@0)
-
因为LD只会引用.
-wood_gang(十三太饱ψ正在横炼);
2007-1-31
(#3469112@0)
-
概念上完全不一样,怎么会是几乎一回事?好久不写程序了,莫非世道变了?你LD看来是科班出身的。
-bdbs(不多不少);
2007-1-31
(#3469143@0)
-
你领导是错的!有时只能用引用,有时只能用指针多加学习,详情查阅《More Effective C++》Item 1: Distinguish between pointers and references.
-xxjjs(东方射日);
2007-1-31
{93}
(#3469147@0)
-
如果传一个参数进去,用引用的话,你可以随便给这个参数赋值,等调用结束后,这个参数的值还是和调用前一样,中间那些赋值都是临时的。如果用指针的话,中间那些赋值就不是临时的了。参数size太大的话不适合用引用的方式传。
-x888(忙着搬家);
2007-1-31
(#3469267@0)
-
答非所问.LZ is asking the difference between pointers and references. you are talking pass-by-value vs. pass-by-reference.
-flyingdagger(飞刀);
2007-1-31
(#3469309@0)
-
噢,看错了。
-x888(忙着搬家);
2007-1-31
(#3469431@0)
-
NOoo
-bugkiller(Driver Coding);
2007-2-1
(#3471199@0)
-
NOoo啥?传参数的讲法不对?不会吧。好,不讲传参数了。Java可以说都是引用,没有指针,反正也什么东西都能实现,而且简单不易错,挺好的。LD说C++等不让用指针也是有道理的。指针涉及分配空间,然后还得释放。忘了释放,或者把释放放在末尾,可是中间转走了,或者转去exception出来然后回不来了什么的,那就忘了释放了,结果内存就泄漏了。测还测不出来。吃过苦头的人,或者没准备好适用指针的人,可能会坚持使用引用。
-x888(忙着搬家);
2007-2-1
{181}
(#3471291@0)
-
你会变魔术吗?
-xxjjs(东方射日);
2007-2-1
{683}
(#3471426@0)
-
哈哈哈哈哈哈哈哈哈,你编的?真好玩。可是俺还是想说呀!
你不会找个空箱子把美女先藏里边,放她到后台喝水,然后再把猴子进美女的箱子去呀。
-x888(忙着搬家);
2007-2-1
{100}
(#3471461@0)
-
既然是魔术,就是要别人看不出来啊,所以接口(至少是public的接口)只能有一个以上例子是我编的,意思是指针有引用无法替代的地方。
以下摘自<More Effective C++>中译本,侯捷译:
总的来说,在以下情况下你应该使用指针,一是你考虑到存在不指向任何对象的可能(在这种情况下,你能够设置指针为空),二是你需要能够在不同的时刻指向不同的对象(在这种情况下,你能改变指针的指向)。如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么你应该使用引用。
-xxjjs(东方射日);
2007-2-1
{370}
(#3471477@0)
-
references is not pass-by-value
-bugkiller(Driver Coding);
2007-2-2
(#3474200@0)
-
另外一个说法是,everything in JAVA is a pointerit depends on how u interpret it in JAVA
-sowen(sowen);
2007-2-10
{40}
(#3489070@0)
-
领导的强调有一定的道理,估计其主要目的是为了避免空指针的使用.但在现实中,他的愿望十有八九要落空.
-keepbugging(独行的猫);
2007-1-31
(#3469416@0)
-
能用reference就要用reference, 因为不易出错//reference must be initialized upon declaration, 如果做不到,就只好用pointer//不是所有的地方可以用pointer,比如operator overloading.
-dusk(~小桥流水~);
2007-2-1
(#3471696@0)
-
我也喜欢用引用多一些,因为引用保证非空。所以很多时候不用担心空指针等情况出现。
-collapsar(笨笨和旦旦.IMMANUEL);
2007-2-3
(#3476120@0)
-
A reference is a constant address, while a pointer is an address variable.A reference is a constant address.
You can not assign a value to a reference, but you can change the value in the constant address.
A pointer is an address variable.
You can assign an address to it, so a pointer is null before you assign an address to it.
If pointer is not null, you can change the value in the address that the pointer points to.
-digitworm(digitworm);
2007-2-8
{356}
(#3485226@0)
-
All about making the game fair.C++ give you a thing can refer to anywhere, that's pointer, also give you a thing can and only can refer to one place. That's reference.
-holx(Dicom);
2007-2-9
{138}
(#3488501@0)