基本数据指针的解读-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 所指向的东西。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Elasticsearch】suggest_mode

suggest_mode 是 Elasticsearch 中 term suggester 和 phrase suggester 的一个参数&#xff0c;用于控制建议的生成方式。它有以下三种模式&#xff1a; 1. missing&#xff1a;默认值。仅对索引中不存在的词项提供建议。如果输入的词已经在索引中存在&#xff0c;则不会生成建…

九、【前后端联调篇】Vue3 + Axios 异步通信实战

九、【前后端联调篇】Vue3 Axios 异步通信实战 前言准备工作第一步&#xff1a;安装 Axios第二步&#xff1a;封装 Axios 实例第三步&#xff1a;创建 API 服务模块第四步&#xff1a;在组件中调用 API第五步&#xff1a;测试前后端联调 总结 前言 在 Web 开发中&#xff0c;…

【计算机网络】传输层TCP协议——协议段格式、三次握手四次挥手、超时重传、滑动窗口、流量控制、

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;计算机网络 &#x1f339;往期回顾&#x1f339;&#xff1a; 【计算机网络】传输层UDP协议 &#x1f516;流水不争&#xff0c;争的是滔滔不息 一、TCP协议 UDP&…

php:5.6-apache Docker镜像中安装 gd mysqli 库 【亲测可用】

Dockerfile 代码如下&#xff1a; FROM php:5.6-apache# 使用Debian归档源 RUN echo "deb http://archive.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list && \echo "deb http://archive.debian.org/debian-security s…

动态设置微信小程序页面标题(navigationBarTitleText属性)

前言&#xff1a; 最近在公司进行小程序研发的时候&#xff0c;产品给出了一个动态加载页面标题的需求&#xff0c;经过调研之后将结果在这里与各位伙伴进行分享。 代码展示&#xff1a; 在.json文件中进行初始配置&#xff1a; { "usingComponents": {}, &q…

从0开始学习R语言--Day12--泊松分布

今天我们来看一个很经典的回归模型&#xff1a;泊松分布。 泊松分布 我们一般会把泊松分布用于预测问题&#xff0c;比如想知道成年人每天接到的骚扰电话次数&#xff0c;医院每天的急诊病人等。但在一些方面&#xff0c;跟我们想的会有出入。例如你不能将其应用在预测下周你的…

k8s中kubeSphere的安装使用+阿里云私有镜像仓库配置完整步骤

一、实验目的 1、掌握kubeSphere 的安装部署 2、掌握kubesphere 使用外部镜像仓库&#xff1b; 2、熟悉图像化部署任务&#xff1a;产生pod---定义服务--验证访问 本次实验旨在通过 KubeSphere 平台部署基于自定义镜像&#xff08;nginx:1.26.0 &#xff09;的有状态副本集…

STM32单片机简介

1.基本情况 STM32单片机正如其名是32位微控制器&#xff0c;相较于51单片机的8位微控制器&#xff0c;性能会更好&#xff0c;但学习难度也会提高。 在stm32单片机中内核时核心部分&#xff0c;是ARM公司设计的&#xff0c;其在stm32单片机中占据极为重要的地位。(程序指令的…

GESP】C++一级考试大纲知识点梳理(1)

计算机基础和操作系统 GESP C++一级官方考试大纲中,除可通过编码掌握的Dev C++开发工具的使用和C++编程基础语法知识外(考纲2-13),还涉及计算机基础知识的要求(考纲1): (1)了解计算机的基本构成(CPU,内存,I/O 设备等) ,了解 Windows、Linux等操作系统基本概念和常…

浅谈 JavaScript 性能优化

文章目录 概要一、代码执行优化1. 减少全局变量访问2. 避免不必要的计算3. 优化循环操作 二、内存管理优化1. 减少内存泄漏2. 对象池与内存复用 三、渲染性能优化1. 避免强制同步布局2. 减少 DOM 操作3. 优化动画与合成 四、网络加载优化1. 代码压缩与 Tree Shaking2. 按需加载…

mongodb nosql数据库笔记

MongoDB 简介 MongoDB 是一个开源的 NoSQL 数据库&#xff0c;采用文档存储模型&#xff08;BSON 格式&#xff0c;类似 JSON&#xff09;&#xff0c;支持高灵活性、水平扩展和高性能的数据操作。与传统关系型数据库&#xff08;如 MySQL&#xff09;不同&#xff0c;MongoDB…

Flutter实现不规则瀑布流布局拖拽重排序

因为业务&#xff0c;所以需要用flutter去实现一种不规则图形的瀑布流&#xff0c;但是同时需要支持拖拽并重新排序。效果类似如下。 查询过现有的插件&#xff0c;要么是仅支持同样大小的组件进行排序&#xff0c;要么就是动画效果不是很满意&#xff0c;有点死板&#xff0c;…

微信小程序(uniapp)实现腾讯云 IM 消息撤回

uniapp 实现腾讯云 IM 消息撤回功能实战指南 一、功能实现原理 腾讯云 IM 的消息撤回功能通过 消息修订&#xff08;Message Revision&#xff09; 机制实现&#xff0c;核心流程如下&#xff1a; 发送方调用撤回 API 删除指定消息云端生成撤回通知消息&#xff08;类型为 T…

AI入门示例

市面上有很多AI大模型&#xff0c;这里以 智谱的大模型 为示例 1.先要注册智谱AI开放平台 2.注册成功后&#xff0c;会赠送3个月的免费额度&#xff0c;如下 3.然后去控制台&#xff0c;创建一个API KEY 4.接着就可以开始写代码了 提前导入包&#xff1a; openai 示例1&…

【数据结构】单链表练习

1.链表的中间节点 https://leetcode.cn/problems/middle-of-the-linked-list/description/ 用快慢指针来解决 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* middleNode(struct ListNode* he…

尝鲜纯血鸿蒙,华为国际版本暂时不支持升级。如mateX6 国际版?为什么不支持?什么时候支持?

一&#xff1a;mateX6 国际版支持鸿蒙吗&#xff1f; 不支持 二&#xff1a;华为国际版支持鸿蒙吗&#xff1f; 不支持 三&#xff1a;华为国际版什么时候支持&#xff1f; 2025年预期可以支持。请耐心等待。 三&#xff1a;国际版为什么不支持&#xff1f; EMUI 采用AO…

Spring Boot的启动流程,以及各个扩展点的执行顺序

目录 1. 初始化阶段执行顺序 1.1 Bean的构造方法&#xff08;构造函数&#xff09; 1.2 PostConstruct 注解方法 1.3 InitializingBean 的 afterPropertiesSet() 1.4 Bean(initMethod "自定义方法") 2. 上下文就绪后的扩展点 2.1 ApplicationContext 事件监听…

刀具问题讨论

1 刀具的问题概述 问题描述 一道工序用自动化车床连续加工某种零件&#xff0c;由于刀具损坏等原因该工序会出现故障&#xff0c;其中刀具损坏故障占95%, 其它故障仅占 5%。工序出现故障是完全随机的, 假定在生产任一零件时出现故障的机会均相同。工作人员通过检查零件来确定…

vite配置一个css插件

vite.config.js的plugins执行函数 该例子只是替换一些css,具体内容不重要,主要看形参的运用 // vite-plugin-css.js export default function cssPlugin() {return {name: vite-plugin-css-post, // 插件的名字&#xff0c;Vite 插件必须有名字enforce: post, // 设定插件执…

✨1.1.1 按位与运算替代求余运算优化场景

在计算机编程中&#xff0c;使用按位与运算&#xff08;&&#xff09;替代求余运算&#xff08;%&#xff09;可以提高效率的特殊场景是&#xff1a;当除数是 2 的整数次幂&#xff08;即 ( b 2^n )&#xff0c;其中 ( n ) 为自然数&#xff09;时。例如&#xff0c;( b …