指针和引用

本文详细介绍了C++中指针和引用的概念、特点、使用方法及两者之间的区别。包括指针的基本操作、引用的定义与初始化、指针与引用的相同点与不同点等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指针:

1. 指针用于指向对象,它保存的是指向对象的地址。

2. 指针在定义时可以不用初始化,但尽量避免使用未初始化的指针。

3. 对指针初始化或赋值只能使用以下4种类型:(1) 0值常量表达式;(2)类型匹配的对象地址;(3)另一对象末的下一地址;(4)同类型的另一个有效指针。

    int iValue = 0;

    const int cValue = 0;

    int *pi = iValue; //error

    pi = 0; //ok

    pi = cValue;//ok

    pi = &iValue; //ok    

4. void *指针可以保存任何类型对象的地址。

 

引用:

1. 引用是对象的别名。

2. 引用在定义的时候必须初始化,并且只能用与该引用同类型的对象初始化。

    int iValue = 10;

    int &refValue;   //error

    int &refValue = 10;   //error

    int &refValue = iValue; //ok

3. 除了不能定义引用类型的引用外,其他任何类型都可以定义引用。

4. 作用在引用上的所有操作实际上都作用在该引用绑定的对象上。

    int iValue = 10;

    int &refValue = iValue;

    refValue = 5; // iValue的值变成5,实际上相当于iValue = 5

5. 当一个引用初始化后,引用的对象不能改变。

6. const引用是指向const对象的引用。

    const int iValue = 10;

    const int &refValue1 = iValue; //ok

    int &refValue2 = iValue;//error

7. const引用可以初始化为不同但相关类型的对象引用,也可以初始化为右值。这一点与非const引用不同。

    int i = 0;

    const int &r = i; //ok

    const int &r1 = 1; //ok

    const int &r2 = r1 + i;//ok

 

 

指针和引用的相同点:

1. 都是地址概念,都可间接访问一个值。

 

指针和引用的区别:

1. 引用总是指向某个对象,定义时必须初始化。

2. 给引用赋值修改的是该引用所关联的对象的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值