C++复合类型--引用和指针

本文详细解析了 C++ 中引用和指针的基本概念及使用方法,包括引用初始化、指针定义与赋值、空指针生成、指向指针的指针和引用等内容。

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

1、引用
  初始化值是对象

int val = 12;
// 应用必须初始化
int &refVal = val;

// 错误,没有初始化
int &refVal0; 
// 错误,初始化应为对象,而不是字面值
int &refVal00 = 17; 
// 注意: 引用的类型和对象类型必须一样

2、指针
指针定义

int *ip1, *ip2;
double dp, *dp2;

int val = 32;
int *p = &val;
int *q = p;
cout << *p << endl << val << endl;
// 注意:指针赋值与被赋值时,数据类型必须保持一致

输出值:

32
32

生成空指针的方法:

int *p1 = 0;
//nullptr是字面值(C++11)
int *p2 = nullptr;
//首先要 #include<cstdlib>
int *p3 = null; 

//合法,p1为指向int的指针类型,p2为int类型
int* p1, p2; //与语句 int *p1, p2; 等价 

指向指针的指针

int val = 233;
int *pi = &val; //指向int类型的指针
int **ppi = &pi; //指向一个int类型的指针(pi的值为int型) 

cout << "direct value: " << val <<endl
        << "indirect value: " << *pi <<endl
        << "doubly indirect value: " << **ppi << endl;

输出:

233
233
233

指向指针的引用

注意:引用本身不是对象,所以不能定义指向引用的指针。但指针是对象,所以存在对指针的引用。

int i = 42;
int *p; // p是一个int型指针
int *&r = p; // r是一个对p指针的引用

r = &i; // r引用了对象i,因此使p指向i
*r = 0; // 解引用r得到i(p指向i),将i的值改为0,p的值也为0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值