| |
|
开发:
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++知识库]指针 引用的理解和应用 |
1.指针可以利用指针变量保存地址(通常理解成指针就是一个地址) 当我们阅读一个指针时我们必须得知道2个东西 1)指针类型
2)指针所指向类型(指针所指向类型代表着指针所存地址内存放的数据的类型)
其它的知识点 1.指针的值或者叫做指针所指向的内存区 指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32 位程序里,所有类型的指针的值都是一个32 位整数,因为32 位程序里内存地址全都是32 位长。指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为si zeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX 为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。指针所指向的内存区和指针所指向的类型是两个完全不同的概念。在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区是不存在的,或者说是无意义的。? 2.指针本身所占据的内存区 指针本身占了多大的内存?你只要用函数sizeof(指针的类型)测一下就知道了。在32 位平台里,指针本身占据了4 个字节的长度。指针本身占据的内存这个概念在判断一个指针表达式(后面会解释)是否是左值时很有用。 3.特殊的指针 this?指针 this 指针概念 this指针是隐含每一个非静态成员函数内的一种指针 this 指针的用途: 空指针 空指针访问成员函数 *和&的关系
总的来说 int *p ;? 1. * 的作用解引用 2. p是一个地址,所以初始化的时候(也就是一般看的?int *p =&a;? =和后面的部分这个过程) =后面得跟一个地址(补:数组名为数组首元素地址,对于类第一个声明成员的地址就是类的地址,一般的用&取地址用算符可以取到地址) 对括号内知识的补充1. *(arr+n)?等同于arr[n]? 3.int *是指针类型 ---通常*和左边的类型组合起来的就是指针类型 4 int是指针所指向类型---通常*左边的类型就是指针所指向的类型 下面是单个拉出来的指针的理解(基本)
2.最重要的?上仙符华神州平板,寸劲开颅,天下第一 --一只符华单推人3.引用引用可以简单理解为取别名? int &a=b; 那边b就是a的别名 继续下去int &b=c; 查看abc?结果一样 4.引用和指针引用和指针最需要注意的是用在函数和类等里面的? 要理解为什么用就得知道他们能做什么,引用和指针通俗点可以理解成去往指定地点的交通工具 现在来补充函数调用时候的特点 函数调用时候最怕的就是一顿操作猛如虎,然后把函数改的面目全非,函数哭哭戚戚表示你大爷的,所以为了防止我们的误操作?所以编译器调用函数的时候?你用的并非原本 ,而是和原本一模一样的克隆体,使用克隆体进行对应操作?之后将返回值送到寄存器,然后我们调用的函数直接接收寄存器里的东西,?当然不止给函数做了克隆体,我们调用的数据也准备了克隆体,所以我们修改的数据是克隆体的数据,克隆体满身伤痕哭哭戚戚,本体旁边看戏。?但是我们就是想改本体改怎么办呢这时候我们C++的最强工具指针和他的小弟引用登场? 指针和引用是进去目标数据地址并得到目标数据工具,函数克隆的工具人很是工具人,不会改变他们的功能,因此他们还是可以进去对原本进行操作的,所以一般函数和类里看到指针引用目的多少为了对原本进行修改,一般是修改因为光展示什么的没必要用。 晚上好啊上仙? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ---一只符华单推人 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年12日历 | -2024/12/29 4:24:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |