c – 取消引用指针是否会复制它?
作者:互联网
是否取消引用指针并将其传递给通过引用获取其参数的函数会创建该对象的副本?
解决方法:
在这种情况下,指针的值被复制(尽管不一定是这种情况,因为优化器可能会优化它).
int val = *pPtr;
在这种情况下,不会发生任何副本:
int& rVal = *pPtr;
没有复制的原因是因为引用不是机器代码级构造.它是一个更高级别的构造,因此是编译器在内部使用而不是为其生成特定代码的东西.
显然,同样适用于功能参数.
标签:dereference,c,pointers 来源: https://codeday.me/bug/20190927/1822312.html