C++的指针和引用

简介: C++的指针和引用

C++的指针和引用

 

在C++中,指针和引用都是用于间接或直接访问内存位置的,但它们之间有一些关键的区别。

 

指针(Pointer)

 

指针是一个变量,其值为另一个变量的内存地址。通过指针,你可以访问或修改那个内存地址所存储的值。

 

指针的声明

 

cpp

 

复制

 

int* ptr;

 

指针的初始化

 

cpp

 

复制

 

int x = 10; int* ptr = &x; // ptr现在指向x的内存地址

 

访问和修改值

 

cpp

 

复制

 

*ptr = 20; // 通过指针修改x的值

 

指针的算术操作

 

++:指针自增,指向下一个内存地址。

 

--:指针自减,指向前一个内存地址。

 

+ 和 -:用于计算两个指针之间的距离。

 

->:用于访问结构体或类成员。

 

动态内存分配

 

使用new和delete关键字进行动态内存分配。

 

cpp

 

复制

 

int* ptr = new int(5); // 动态分配一个int类型的内存 delete ptr; // 释放动态分配的内存

 

引用(Reference)

 

引用是一个变量的别名,一旦初始化,它的值就不能再改变。

 

引用的声明

 

cpp

 

复制

 

int& ref = x; // ref是x的别名

 

引用的初始化

 

cpp

 

复制

 

int x = 10; int& ref = x; // ref现在和x指向同一个内存地址

 

访问值

 

cpp

 

复制

 

ref = 20; // 通过引用修改x的值

 

引用的特点

 

引用必须在初始化时被赋予一个值。

 

引用一旦被初始化,就不能被赋予另一个值。

 

引用不能被赋予nullptr,也不能被重新绑定。

 

指针和引用的比较

 

指针可以被赋予nullptr,也可以重新绑定。

 

指针可以指向动态分配的内存。

 

引用必须始终指向一个有效的对象。

 

指针和引用的用途

 

指针常用于动态内存分配和数组操作。

 

引用常用于函数参数传递,因为它提供了对原始数据的直接访问。

 

指针和引用是C++中非常重要的概念,它们允许程序员更灵活地控制内存访问,是C++高效编程的关键部分。

相关文章
|
1月前
|
JSON JavaScript 前端开发
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
269 0
|
4天前
|
C++
【C++11(三)】智能指针详解--RAII思想&循环引用问题
【C++11(三)】智能指针详解--RAII思想&循环引用问题
|
4天前
|
人工智能 C++
【重学C++】【指针】轻松理解常量指针和指针常量
【重学C++】【指针】轻松理解常量指针和指针常量
9 0
|
4天前
|
存储 人工智能 C++
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
25 1
|
19天前
|
存储 C++
C++指针
C++指针
|
30天前
|
存储 编译器 C语言
【c++】类和对象(二)this指针
朋友们大家好,本节内容来到类和对象第二篇,本篇文章会带领大家了解this指针
【c++】类和对象(二)this指针
|
1月前
|
存储 编译器 C语言
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
|
1月前
|
监控 安全 算法
悬垂引用与临时对象在C++中的深入探讨: 风险、原因与预防策略
悬垂引用与临时对象在C++中的深入探讨: 风险、原因与预防策略
56 3
|
1月前
|
存储 安全 数据库连接
【C++智能指针】深入探究C++智能指针:自定义删除器的设计与选择
【C++智能指针】深入探究C++智能指针:自定义删除器的设计与选择
84 0
|
1月前
|
存储 安全 编译器
【C++ 函数设计的艺术】深挖 C++ 函数参数的选择 智能指针与 std::optional:最佳实践与陷阱
【C++ 函数设计的艺术】深挖 C++ 函数参数的选择 智能指针与 std::optional:最佳实践与陷阱
111 0