关于引用和指针的区别

关于引用和指针的区别的出现,是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;
}
原文地址:https://www.cnblogs.com/causal360/p/4783783.html