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

基本数据指针的解读-C++

1、引言

笔者认为对于学习指针要弄清楚如下问题基本可以应付大部分的场景:
① 指针是什么?
② 指针的类型是什么?
③ 指针指向的类型是什么?
④ 指针指向了哪里?

2、如何使用指针

使用时的步骤如下:
① 声明指针变量;
② 初始化;
③ 访问指针指向的数据。
基于这个三个步骤,笔者将对整型数值类型的数据进行举例说明。

	//-----------------声明指针变量int* prt_a = nullptr;//声明一个整型数指针变量,nullptr—空指针//-------------初始化指针变量,采用指向已有变量的方式-----int a = 10; //定义整型数值常量prt_a = &a;//指针指向了变量a的地址&a//---------访问指针数据int my_test = 0;my_test = *prt_a;cout << "a = " << a << endl;cout << "my_test = " << my_test << endl;cout << "*prt_a = " << *prt_a << endl;//----------访问并修改指针指向的数据*prt_a = 20;cout << "a = " << a << endl;cout << "*prt_a = " << *prt_a << endl;

运行结果如下:
在这里插入图片描述
代码解读:
① 声明一个整型数变量a,它的值为10,它的地址是&a,它在计算机上的执行原理是:在物理上,内存地址为&a的内存处,存放了 (int)10的编码,通过对该内存处的编码解码就可以得到(int)10;
② 声明一个指针变量prt_a,它指向了变量a的地址;
③ 通过解引用*prt_a,就可以获取指针变量指向的数据,也就是a的值,int(10);
④ 将指针变量指向的数据赋值给整型变量my_test ;
⑤ 将指针变量指向的数据修改为20,实际上也就是将整型变量a的值修改为20。

3、总结:
以上述案例来回答引言中的几个问题:
① 指针变量prt_a就是a的地址,也就是变量a存放在物理内存上的位置,把内存比作电影院的座位,指针变量就是座位的序号;
② 指针prt_a 的指针类型是int*,所以它指向的数据类型也必须是int;
③ 指针prt_a指向的数据类型是int;
④ 指针prt_a指向的是变量a的地址。

4、注意事项

① 两个指针不能进行加法运算,这是非法操作,因为进行加法后,得到的结果指向一个不知所向的地方,而且毫无意义
② 指针的值是XX,相当于说该指针指向以XX为首地址的一片区域,这片区域的大小由指针指向的类型决定;
③ &是取地址运算符,*p 的结果是p 所指向的东西。

相关文章:

  • Visual Studio中的宏变量
  • Python打卡训练营day40——2025.05.30
  • 每日算法 -【Swift 算法】将整数转换为罗马数字
  • JS手写代码篇---手写节流函数
  • allWebPlugin中间件VLC专用版之截图功能介绍
  • 评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
  • 历年西安交通大学计算机保研上机真题
  • 异步并发控制代码详细分析
  • WEB3——什么是ABI
  • 《TCP/IP 详解 卷1:协议》第2章:Internet 地址结构
  • <PLC><socket><西门子>基于西门子S7-1200PLC,实现手机与PLC通讯(通过websocket转接)
  • 云原生微服务架构演进之路:理念、挑战与实践
  • 小型图书管理系统案例(用于spring mvc 实践)
  • MicroPython+L298N+ESP32控制电机转速
  • Wi-Fi 切换 5G 的时机
  • 公链地址生成曲线和算法
  • 【NLP入门系列一】NLP概述和独热编码
  • c/c++的opencv霍夫变换
  • LLM 使用 MCP 协议及其原理详解
  • Glide NoResultEncoderAvailableException异常解决
  • 做公司网站的流程/百度指数的数据来源
  • 北京网站建设团队/网络广告推广服务
  • 网站建设合同英文版/上海疫情又要爆发了
  • 扬州做网站的/广告软文案例
  • 凡科网站内容怎么做效果好/自助建站网站模板
  • 12380网站开发/商铺营销推广方案