IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c++关于指针与引用的总结 -> 正文阅读

[C++知识库]c++关于指针与引用的总结

c++关于指针与引用的总结:

指针

1、指针变量:int * p p对应的内存中保存的是变量的地址
2、空指针:指向内存中地址为0的指针,不可以访问,可用作指针初始化(0~255系统使用)
3、野指针:指针变量指向非法空间的(不可访问空间)指针
4、数组指针:指向数组第一个元素地址(数组变量本身也是指向第一个元素的地址)
5、常量指针:const int * p 指针的值可以修改(指针的指向可以修改),指针指向的值不可以修改(指针解引用的值不能修改)~ const修饰的是类型 int所以对应变量的值
6、指针常量:int * const p 指针的值不可以修改(指针的本身的值即指向的地址不可以修改),指针指向的值可以修改(解引用的值可以修改)~ const修饰的是变量p,变量p的内容是地址

引用

1、引用:变量的别名 int &b = a/ int &b = test()(数据类型 &别名 = 变量原名),别名与变量原名指向同一块内存空间,引用定义必须初始化并且初始化就不能再修改(已经指向变量a即已经是a的别名,就不可以重新作为b的引用即不可以再是b的别名,但是可以赋值)
2、引用简化了指针类型的形参(引用作为形参其实是传入实参的别名,函数内修改引用会同时影响外面的实参)
3、引用可以作为返回值如(int& test(){})不要返回局部变量的引用(局部变量存在栈上,作用域执行结束即被回收)
4、如果引用作为函数的返回值(根据3来讲,可以返回全局的/static类型的变量的引用),则函数调用可以作为左值(这里其实修改的还是对应变量的引用,指针应该也可以达到这种目的)
5、引用的本质是一个指针常量( int &d = a; 内部其实是int * const ref = &a 指针的值不可改变即指针变量的值不可改变,但是指针指向的值可以改变,引用赋值 d = 20 本质其实是解引用,此时d = 20 相当于*ref = 20),这也解释了引用一旦初始化就不可以再作为别的变量的别名,这个工作是编译器转换的
6、常量引用(引用的本质是指针常量,指针变量的值可以改变,但是指针指向的值不能修改,由于引用本身就是一个指针常量 int * const p 所以常量引用即为const int * const p 即不可修改指针的值,也不可以修改指针指向的内容,利用这个特性可以保护函数形参不被函数内部修改)void test(const int& ){} 可以理解为内部转换为void test(const int * const v){}
7、引用必须引用一块合法的内存空间(不可以是字面量 int & ref = 10是错误的 等同于 int * const ref = 10 此时10是字面量不可修改而 左值为指针常量,指针常量可以修改指向的值,编译器会报错,此时修改为const &ref = 10是正确的,const &ref等同于const int * const ref = 10,左右都是不可修改的也可以理解为编译器创建了临时变量int tmp = 10 int &ref = temp)
ps:主要使用场景~修饰形参防止误操作(函数内部修改了外部变量)这种传参方式,一防止修改外部数据,二可以避免值传递发生拷贝提升效率

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章           查看所有文章
加:2022-05-11 16:14:52  更:2022-05-11 16:17:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 12:00:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码