指针学习总结

news/2024/9/20 1:18:45/ 标签: 数据结构

当指针本身定义的类型不同十,指向的一次性取值长度也不同

数组元素的指针

数组存放字符串

数组存放字符串时存放在栈区,sizeof(str1) ==128字节

字符指针指向字符串

str2此时存放的是h的地址,因此sizeof(str2) == 4字节或者8字节

并且文字常量区是只读的不允许赋值

指针数组

因此这样输出的单个字符

下面这样才能输出整个字符串

二维数组

数组指针

数组首元素地址和 数组首地址

int arr[5] = {1,2,3,4,5};

数组首元素地址:&arr[0] == arr  ,arr+1 跳过一个元素 即4个字节的空间

数组的首地址:&arr   &arr+1 跳过整个数组即20个字节的空间

数组指针 :本质是指针变量 保存的是数组的首地址

int (*p)[5] =  NULL ;//数组指针p 可以保存int arr[5]这样数组首地址,sizeof(p)//44字节

注意:int *pr[5] ;//指针数组 每个元素都是int *

int (*p)[5] = &arr;

对数组首地址取* == 数组首元素地址   →*p == *&arr == arr

即 *(arr+2) == *(*p +2) ==*(*(p+0)+2) ==*(p[0] +2) == p[0][2]

数组指针的案例

int Arr[5] = {10,20,30,40,50};

int (*pt)[5] = &arr;//数组指针

cout<<*((int *)(pt+1) -2)<<endl;//40

因为pt+1 跳过整个数组,然后(int *) 优先级大于 - 所以pt+1 先被强制转为int * 然后才因此-2 就跳过8个字节所以指向40


http://www.ppmy.cn/news/1433542.html

相关文章

Nacos配置中心动态刷新原理

三种模式&#xff1a; ①&#xff1a;pull模式&#xff1a;主动拉去配置&#xff0c;通过固定的时间间隔。缺点&#xff1a;频繁请求&#xff0c;时效性不高&#xff0c;时间间隔不好设置。 ②&#xff1a;push模式&#xff1a;服务端检测到变化&#xff0c;主动将新配置推送给…

.gitignore修改后未生效处理

比如添加忽略 *.md后缀文件&#xff0c;如果之前提交过md文件&#xff0c;现在忽略就会无效&#xff0c;即使文件名称不同也不行。 这时需要进行一下三步。 删除本地缓存 git rm -rf --cached . 提交 git add . 更新 git commit -m update .gitignore

【前端】node.js常用命令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、node是什么二、node.js常用命令三、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人能够上手操作执行一些简单命令&#xff0c;…

Flink窗口机制

1.窗口的概念 窗口概念 时间是为窗口服务的。窗口是什么&#xff1f;为什么会有窗口呢&#xff1f; &#xff08;1&#xff09;Flink要处理的数据&#xff0c;一般是从Kafka过来的流式数据&#xff0c;如果只是单纯地统计流的数据量&#xff0c;是没办法统计的。 &#xff08;…

Jenkins 哲学 - 插件初始化安装失败

到Jenkins官网查找最新的LST版本 最后的版本号一定要带&#xff0c;指定下载具体的版本号 docker pull jenkins/jenkins:2.426.1 自定义挂载目录&#xff0c;修改权限 mkdir /jenkins/jenkins_homechmod 777 /data/jenkins

Retelling|Gap Year

录音 Retelling|Gap Year gap year 转写 im a trainee from DJ teaching interpretation. And Im going to talk about taking a gap year. Its Most of our popular off for students are taken after college and before University, the UK taking a cut cups here and hav…

React-editor-js not showing up in a function component

React-editor-js not showing up in a function component react-editor-js 在react 函数组件中显示不出来 真的&#xff0c;我马上就想放弃它了。但是看它周下载量还挺多&#xff0c;我不信别人没遇到过。于是我继续在网络上挖呀挖。只是我一开始的方向错了。我一直以为我的写…

Qt外场软件崩溃问题解决记录

背景介绍 软件为基于Qt和C开发的桌面应用软件&#xff0c;主要功能为实现用户设备系统的监控功能和其他业务功能&#xff0c;特点是系统中的设备数量很多&#xff0c;且设备状态数据有两种不同协议的上报。 周末外场传来消息&#xff0c;软件一天内出现了四五次闪退。拿到外场…

河南灌溉排涝工程设计资质升级步骤与要点

河南灌溉排涝工程设计资质升级是一个系统性的过程&#xff0c;涉及多个关键步骤和要点。以下是对这一过程的详细梳理&#xff1a; 一、前期准备与自我评估 了解资质要求&#xff1a;首先&#xff0c;企业需要深入了解乙级灌溉排涝工程设计资质的具体要求和标准&#xff0c;对…

C语言——小知识和小细节16

一、左旋字符串 例如字符串 abcd &#xff0c;左旋一个就是 bcda &#xff0c;左旋两个就是 cdab 。 方法一&#xff1a;循环 #include <stdio.h> #include <string.h>void func(char* str, int n) {int i 0;int j 0;int len (int)strlen(str);n % len;//超出…

vue 的 diff 算法

vue的diff算法&#xff0c;是其虚拟DOM实现中的核心部分&#xff0c;用于高效地比较新旧虚拟节点&#xff0c;并据此更新实际的DOM&#xff0c; vue的diff算法&#xff0c;基于以下策略来优化性能&#xff1a; 1、同层比较&#xff1a; Vue 的 diff 不会跨层级比较节点&…

iOS ------代理 分类 拓展

代理协议 一&#xff0c;概念&#xff1a; 代理&#xff0c;又称委托代理&#xff08;delegate&#xff09;&#xff0c;是iOS中常用的一种设计模式。顾名思义&#xff0c;它是把某个对象要做的事委托给别的对象去做。那么别的对象就是这个对象的代理&#xff0c;代替它来打理…

javascript(第三篇)原型、原型链、继承问题,使用 es5、es6实现继承,一网打尽所有面试题

没错这是一道【去哪儿】的面试题目&#xff0c;手写一个 es5 的继承&#xff0c;我又没有回答上来&#xff0c;很惭愧&#xff0c;我就只知道 es5 中可以使用原型链实现继承&#xff0c;但是代码一行也写不出来。 关于 js 的继承&#xff0c;是在面试中除了【 this 指针、命名提…

无人机+光电吊舱:4K AI 180倍混合变焦吊舱技术详解

无人机搭载吊舱是一种常见的配置方式&#xff0c;吊舱可以装载不同的设备&#xff0c;以满足不同的任务需求。吊舱通常挂载在无人机的下方或侧面&#xff0c;可以根据需要进行调整。 随着无人机技术的飞速进步&#xff0c;4K AI 180倍混合变焦吊舱技术的出现&#xff0c;将无人…

C++进阶--异常

C语言传统的处理方式 终止程序&#xff1a;在发生错误时直接终止程序的运行&#xff0c;可以通过assert宏来进行实现。如assert(condition)&#xff0c;其中condition不满足要求时&#xff0c;将会使程序立刻停止执行&#xff0c;并输出相关错误信息。这种方式的确定是用户很难…

计算机网络4——网络层1

文章目录 一、网络层1、概念2、网络层的两个层面1&#xff09;介绍2&#xff09;问题3&#xff09;解决 二、网际协议IP1、介绍2、虚拟互联网络1&#xff09;介绍2&#xff09;案例 3、IP地址1&#xff09;IP 地址及其表示方法2&#xff09;分类的IP地址3&#xff09;无分类编址…

视频滚动字幕一键批量轻松添加,解锁高效字幕编辑,提升视频质量与观众体验

视频已成为我们获取信息、娱乐休闲的重要渠道。一部成功的视频作品&#xff0c;除了画面精美、音质清晰外&#xff0c;字幕的添加也是至关重要的一环。字幕不仅能增强视频的观感&#xff0c;还能提升信息的传达效率&#xff0c;让观众在享受视觉盛宴的同时&#xff0c;更加深入…

探究C++20协程(5)——基于挂起实现无阻塞的定时器

实现目标 当用传统的线程 sleep 函数来让程序等待时&#xff0c;实际上是在阻塞当前线程。阻塞意味着这个线程在指定的时间&#xff08;例如100毫秒&#xff09;内无法执行任何其他任务。这种方式虽然简单&#xff0c;但效率低下&#xff0c;因为它导致CPU资源在等待期间未被充…

使用uni-app开发app时遇到mqtt.js不可用的问题

使用uni-app开发app时遇到mqtt.js不可用的问题 1 问题背景 基于 Vue3 版本创建了 uni-app 项目用于开发微信小程序&#xff0c;项目中用到了 mqtt.js&#xff08;v4.1.0&#xff09;&#xff0c;编译为微信小程序能够正常运行&#xff0c;但是编译为 APP 后&#xff0c;控制台…

C# winform OpenProtocol中数据中的UI是什么类型?

C# winform OpenProtocol中数据中的UI是什么类型&#xff1f;