[C++语法语义探讨] 什么时候会用到这样的参数 *&param

netpcc 2007-10-11
jimmy_c正解。
**还要判断是否非空。单纯传出一个指针的话,还是*&比较方便。
如果有语言内置的tuple设施的话,就更好了。
jigsaw 2007-11-02
如果是在c里面这么写,又是什么目的?
是在inline asm当中

是强制as用stack而不是register吧?
jigsaw 2007-11-02
不是。。。如果是这个原因,用m指定就可以了。。。
fixopen 2007-11-23
指针的引用。
目的很简单,作为一个基于value的语言,其参数传递都是copy语义的,也就是说,在函数内部修改的不过是参数的副本而不是真本:)。
甚至对于指针也是如此,是的,你可以修改指针指向的内容,但是你不能修改指针本身。精确的说,你不能修改真本的指针,只能修改副本的指针。
引用在参数中表达的基本含义就是在不会制作一个副本传递给函数,而是直接把真本传递给函数,这时候,修改该参数就会影响超越于函数内部的范围了。

指针的引用也是这样的意图,就是为了修改该指针而设定的。以前在C语言中没有引用,如果想修改指针,就只好使用指针的指针。 由于我们可以修改指针指向的内容,所以我们就修改了指针指向的那个指针。但是,C++中有引用的存在,双重指针的这个让人感觉比较晦涩的用法就开始式微了。C++实践中推崇放弃多重指针,代之以指针的引用。
Global site tag (gtag.js) - Google Analytics