当前位置: 首页 > news >正文

C++编程学习(第25天)

什么是指针?

指针是C和C++中一个重要的概念。正确而灵活的运用它,可以使程序简介、紧凑、高效。每一个学习和使用C和C++的人,都应当深入的学习和掌握指针。

为了说清楚什么是指针,必须弄清楚数据在内存中是如何存储的,又是如何读取的。

如果在程序中定义了一个变量,在编译时就给这个变量分配内存单元。系统根据程序中定义的变量类型,分配一定长度的空间。

例如:C++编译系统一般为整型变量分配4字节,对单精度浮点型变量分配4字节,对字符型变量分配1字节。

“字节”(Byte)是计算机信息技术中用于计量存储容量和表示信息的基本单位之一。

1 个字节 = 8 个比特。比特是计算机中最小的数据单位,代表一个二进制位(0 或 1)。因此,一个字节可以表示 2⁸ = 256 种 不同的状态或组合(从 00000000 到 11111111)。

字节是表示单个字符(如字母、数字、标点符号)的基本单位。

内存区的每一字节都有一个编号,这就是地址,它相当于旅馆中的房间号。在地址所标识的内存单元中存放数组,这相当于旅馆中各个房间中居住旅客一样。

请务必弄清楚内存单元的地址和内存单元的内容这两个概念的区别。

在程序中一般是通过变量名来对内存单元进行存储操作的。其实程序经过编译后已经将变量名转换为变量的地址,对变量值的存取都是通过地址进行的。

按变量地址存取变量值的方式称为直接存取方式,或直接访问方式

将变量i的地址存放在另一变量中,称为间接存取方式,或间接访问方式。

假设定义了一个变量i_pointer,用来存放一个整型变量的地址,编译系统给这个变量分配4个字节,可以通过以下语句将i的起始地址存放到i_pointer中。

i_pointer=&i;    //&i是变量i的存储单元的起始地址

&是取地址运算符,&i是变量i的地址。执行上面的语句后,i_pointer的值就是变量i所占用存储单元的起始地址。

由于通过地址能找到所需的变量单元,因此可以说,地址指向该变量单元,因此将地址形象化地称为指针,意思是通过它能访问以它为地址的内存单元,一个变量的地址称为该变量的指针。

如果有一个变量是专门用来存放地址的,则它称为指针变量。

指针变量的值是地址。

在 C++ 中,指针的 * 符号在定义和使用时有不同的含义。

定义时的 * 是类型说明符,表示声明一个指针类型变量,告诉编译器该变量存储的是内存地址,而不是普通数据,与数据类型共同组成"指针类型"(如 int* 表示"整型指针")。

使用时的 * 是解引用运算符(dereference operator),作用时访问指针指向的内存地址中的实际数据类。

http://www.dtcms.com/a/339836.html

相关文章:

  • 1A AMOLED显示屏电源芯片BCT1838
  • UE5多人MOBA+GAS 50、英雄选择(一)
  • 福彩双色球第2025095期综合分析
  • 宿主获取插件View流程原理 - fetchViewByLayoutName
  • 国密算法及应用场景概述(SM1、SM2、SM3、SM4、SM7、SM9、祖冲之ZUC算法)
  • 大模型参数如何影响模型的学习和优化?
  • TheB.AI
  • C++常见面试题-3.C++11 及后续特性
  • 图像融合指标的代码
  • package.json详细字段解释
  • 基于 RxJava 构建强大的 Android 文件下载管理器
  • APM32芯得 EP.29 | 基于APM32F103的USB键盘与虚拟串口复合设备配置详解
  • 【库的操作】
  • linux控制其他程序使用cpu低于50%——笔记
  • 常见的对比学习的损失函数
  • LLM(大语言模型)的工作原理 图文讲解
  • 基于“R语言+遥感“水环境综合评价方法技术应用——水线提取、水深提取、水温提、水质提取、水环境遥感等
  • make stb style code: bin2c and reverse
  • 开发中使用——APP层级相关知识
  • bit-Agent正式接入GPT-5,九科信息智能体能力再升级!
  • 海滨浴场应急广播:守护碧海蓝天的安全防线
  • 皮带跑偏?智慧煤矿靠AI摄像机+检测算法实现实时预警
  • Docker学习--常用命令
  • vue3动态获取高度用在轮播图上
  • Diamond开发经验(1)
  • 代码随想录刷题Day37
  • C++的二叉搜索树(二叉排序树)
  • AC 应用控制技术
  • Vulkan笔记(十一)-渲染通道(RenderPass)详解
  • 厂区能源管理智能化改造物联网解决方案