指针与引用的区别
1.指针有自己的一块空间,引用只是一个别名。
2.使用sizeof看一个指针的大小是4(32位编译器),而引用则是要看引用对象的大小。
3.指针可以被初始化尾NULL,而引用必须被初始化,且必须是一个已有对象的引用。
4.作为参数传递时,指针必须被解引用才对对象进行操作。直接对引用的操作,就是操作对象本身。
5.指针在使用时,可以指向其他对象,但引用只能是一个对象的引用,不能被修改。
6.指针可以有多级指针,而引用只能有一级。
7.指针和引用使用的++运算符的意义不一样。
8.有void*类型的指针,没有void类型的引用。
9.指针只能指向字符串常量,引用可以是任何常量的别名。
10.指针有数组指针、函数指针,但引用没有。
##分别使用指针和引用实现两个数的交换
指针:
引用:
源码
#include <iostream>
using namespace std;
void exchange(int *p_a, int *p_b)
{
int temp = 0;
temp = *p_a;
*p_a = *p_b;
*p_b = temp;
}
void exchange(int &c, int &d)
{
int temp = 0;
temp = c;
c = d;
d = temp;
}
int main()
{
int a=10;
int b=30;
//exchange(&a, &b);
exchange(a, b);
cout << "a=" << a << endl;
cout << "b=" << b << endl;
return 0;
}