数组名就是一个指针,指向该数组的第一个元素。即v指向v[0]。
引用等于把某个变量起一个别名,可以把这个别名传入函数,这样类似于传一个指针,修改该变量都是在修改原变量,而不是一般传参时时复制一个副本修改。返回也是一样。
但引用似乎无法输出访问地址,地址那串16进制数还得用指针。
runoob还写了这三条:
不存在空引用。引用必须连接到一块合法的内存。
一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
引用必须在创建时被初始化。指针可以在任何时间被初始化。
我还看runoob有这条:
另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static变量。
但我自己试了试这样是可行的:
#include<iostream>
using namespace std;
int * fun(){
int a=18;
int *par;
par=&a;
return par;
}
void prt(int *par){
cout<<*par;
}
int main(){
int *t;
t=fun();
*t=19;
prt(t);
return 0;
}
我是在fun里定义的a,但是不管在主函数还是其他函数都能正常调用/修改。
内容可以为空
浙公网安备 33010602011771号