关于引用和指针的区别的出现,是C++ 语言中应该出现的概念,而非C语言。
(1)引用必须被初始化,指针不必。
(2) 引用初始化以后不能被改变,指针可以改变所指的对象。
(3) 不存在指向空值的引用,但是存在指向空值的指针。
(4)"sizeof引用"得到的是所指向的变量(对象)的大小,而"sizeof指针"得到的是指针本身的大小。
#include "stdafx.h" #include <iostream> using namespace std; int main() { int i; //正常声明变量的方式 int i = 555; //正常声明变量的方式 ,并初始化了这个变量 //int &i; //错误 声明了一个引用,但引用不能为空,必须同时初始化 int &i2 = i; //正确 cout << i2<<endl; 结果为555; int *p; //正确 声明了一个整形指针,但是并没有定义这个指针所指向的地址 int *p2 = NULL; p = 2; //错误 pi存储的为地址而不是一个这个2危险的数字(未知的地址,可能指向只读区域导致系统奔溃) p = &i2; //正确 证书指针pi指向iv3的实际地址 const double b; //错误 const常量赋值时,必须同时初始化。第一次必须初始化 const double max = 10.0; //正确 const常量赋值并同时初始化 const double min = 0.5; //正确 同上 const double *p = &max; //正确 const常量指针赋值并同时初始化 return 0; }