Jam*_*sev 6 c++ pointers reference
请问以下是什么错误?
我的理解是指针表示某种类型的某个地址.
所以,int i = 18指向它的指针是int *pI = &i;
以下2个声明有效
void foo (int &something) // Will accept an address of something
void bar (int *something) // Will accept a pointer to something
Run Code Online (Sandbox Code Playgroud)
当我们声明一个函数时
void bar (int *something)
Run Code Online (Sandbox Code Playgroud)
我们最好发送指向某事物的指针.确实,foo(pI)有效.
按照相同的逻辑,看着
void foo (int &something)
Run Code Online (Sandbox Code Playgroud)
我们应该发送一个指向int作为参数的东西的地址,然后:
为什么foo(&i)错了?
void foo (int &something) // Will accept an address of something
这是不正确的:int&是一个引用,一个与某些方面的指针类似的概念,但完全不相同.
引用类似于指针,因为可以通过引用更改值,就像可以通过指针更改一样.但是,没有"null引用"这样的东西,而NULL指针非常常见.
当您调用带引用的函数时,您只需将变量传递给您正在使用的引用 - 不需要&运算符:
void foo (something); // "something" must be a variable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |