指针与引用
C++中指针和引用的应用很常见,连着的使用极易混淆,但是区别很明显:
1. 指针是变量,而引用只是变量的一个别名,而且引用使得别名与引用对象绑在了一起。
2.指针初始化之后还可以指向其他变量,但是引用只能初始化一次。
3.sizeof 操作的结果不一样,引用为所指向变量的大小,指针则返回指针本身的大小。
4. 引用不可以为空,但是指针可以是空指针。
#include//引用的用法,引用就相当于给一个对象定义一个别名,作用在引用上的所有操作都与绑定的对象有关。 int main() { int val = 11, val2 = 33; int &refval = val, &refval2 = val2; ///引用必须要初始化,使其绑定到一个变量上 ///修改引用的值将改变其所绑定的变量的值 refval = -22; printf("%d %d\n", val, refval);//输出为-22,refval的值和val一样 refval = refval2; //引用一但初始化(绑定),将始终绑定到同一个特定对象上,无法绑定到另一个对象上 printf("%d %d\n", val, refval);//输出为33,33 return 0; }
引用作为函数的参数
#includeusing namespace std; void swap(int &a,int &b) { int t; t=a; a=b; b=t; } int main() { int x,y; cin>>x>>y; swap(x,y); cout< 指针的引用
#includeusing namespace std; void add1(int * &a) { (*a)++; } void add2(int * &a) { a++; } int main() { int *x; x=new int; printf("%x\n",x); scanf("%d",x); add1(x); cout<