当通过引用指针将函数与参数一起使用时会发生什么
What happens when use a function with an argument by reference with a pointer?
带有函数的引用相当混乱。您可以在函数定义中放入一个作为参数,然后在以后使用它时为该参数放入一个非引用非指针值。然后我想到了这个:
int foo (int& bar)
{
//Code
}
//More code...
int* a = &b;
c = foo (a);
会发生什么?foo使用a,b还是什么?如何强制使用?
你为什么不自己测试呢?每当有疑问时,请尝试编译它!
它不起作用并且有意义 - foo()
要求一个类型 int&
的参数 - 引用一个int
,但您正在尝试传递指向它的指针。你会得到的错误是这样的
cannot convert parameter 1 from 'int *' to 'int &'
关于您的问题
如何强制使用?
您的函数当前能够修改传递给它的任何int
值,因为它接受reference
作为参数。
如果不希望函数修改其参数,请将其签名更改为:
int foo (int bar)
或者将参数更改为对const
int
的引用:
int foo (const int& bar)
如何强制使用?
不,它将生成编译错误。如果您想了解引用和指针之间的差异,请通过此链接。
相关文章:
- 什么是现实中的"endl"(或任何输出操纵器)?它是如何实现的,它如何与操作员<<一起工
- 出于什么目的,非虚拟方法将与C++一起使用?
- 如果与memory_order_acquire一起存储会发生什么
- 什么时候可以将"typename"与明确引用类型的标识符一起使用?
- 尝试实现通过引用传递的向量以与二叉树一起使用,我错过了什么
- 有什么方法可以将字符串文字u8与变量一起使用吗
- *和一起使用的含义是什么
- 什么模拟框架与CPPUNIT一起使用
- visual studio 2012为C++使用了什么编译器?它兼容吗?我可以将它与代码块一起使用吗
- 与自定义分配器一起使用的最佳唯一指针是什么
- 与私人成员一起上课.这个代码出了什么问题
- 常量与引用传递一起使用有什么意义?C++
- 当通过引用指针将函数与参数一起使用时会发生什么
- 当不与尝试和接球一起使用时,投掷的作用是什么
- 使用_GLIBCXX_CXX11_ABI将5.1版以前的C++ABI与C++11/14功能一起使用有什么意义
- 分别创建目标文件,然后在Makefile中将它们链接在一起的目的是什么?< / h1 >
- 在 c++ 中,char 和 const * char 有什么区别,为什么不能将两个字符加在一起
- 与指针向量一起使用的最佳智能指针是什么
- 将新运算符与函数一起使用C++智能方法是什么?
- 将 MPI 与线程一起使用的正确方法是什么