c++中的引用&和指针*的关系

C++中的引用和指针都是用来操作变量或对象的,但是它们有着不同的语义。引用是指向变量的指针,可以通过引用来修改变量的值,而指针是指向数据的指针,可以通过指针来访问数据。

在C++中,引用和指针的关系可以通过以下几个方面来说明:

1、引用&和指针*的定义

引用&是一个指针变量,它指向一个已经存在的变量。引用的值是指针指向的内存地址,可以通过引用来修改变量的值。

指针*是一个变量,它存储了一个内存地址。指针可以指向不同类型的数据,例如整数、浮点数、字符等。指针可以通过指针来访问数据,例如访问数组元素、函数参数等。

2、引用和指针的使用

引用和指针的使用方式有所不同。引用可以用来修改变量的值,而指针可以用来访问数据

例如,如果有一个指向整数的指针变量p,可以通过下面的方式来修改p指向的整数的值:

int *p = &a; // 定义一个指向整数的指针变量p  
*p = 100; // 通过p指向的地址来修改p指向的整数的值

同样地,如果有一个指向字符的指针变量p,可以通过下面的方式来访问p指向的字符:

char *p = &a; // 定义一个指向字符的指针变量p  
*p = 'a'; // 通过p指向的地址来访问p指向的字符的值

需要注意的是,当通过指针来访问数据时,必须确保指针指向的内存地址是有效的,否则可能会导致程序崩溃或者出现其他错误。

3、引用和指针的区别(简略)

  • 指针可以在定义的时候不初始化,引用必须在定义的时候初始化。
  • 指针可以指向NULL,引用不可以为NULL。
  • 指针初始化之后可以再改变,引用不可以。

4、Code案例

#include <iostream>
using namespace std;

int main () {
   int    var = 20;   // 实际变量的声明
   int   *ip;         // 指针变量的声明
   int   &ref = var;  // 引用变量的声明

   ip = &var;  // 在指针变量中存储 var 的地址

   cout << "var 变量的值:";
   cout << var << endl;

   // 输出在指针变量中存储的地址
   cout << "存储在 ip 变量中的地址:";
   cout << ip << endl;

   // 访问指针中地址的值
   cout << "*ip 变量的值:";
   cout << *ip << endl;

   // 输出引用变量的值
   cout << "ref 变量的值:";
   cout << ref << endl;

   // 修改引用变量的值
   ref = 30;
   cout << "修改ref后:" << endl;
   cout << "var 变量的值:";
   cout << var << endl;
   cout << "ref 变量的值:";
   cout << ref << endl;

   // 修改指针变量中地址的值
   *ip = 40;
   cout << "修改*ip后:" << endl;
   cout << "var 变量的值:";
   cout << var << endl;
   cout << "*ip 变量的值:";
   cout << *ip << endl;

   return 0;
}

运行如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值