37.【C语言】指针(重难点)(B)

目录:

5.疑问解答:指针的解引用

6.指针+或-整数

7.特殊类型*void指针

承接上篇19.【C语言】指针(重难点)(A)

5.疑问解答:指针的解引用

观察下列代码产生的现象

#include <stdio.h>
int main()
{int n = 0x12345678;//十六进制存储int* pi = &n;*pi = 0;return 0;
}


改为char

#include <stdio.h>
int main()
{int n = 0x12345678;//十六进制存储char* pi = &n;*pi = 0;return 0;
}


改为short

#include <stdio.h>
int main()
{int n = 0x12345678;//十六进制存储short* pi = &n;*pi = 0;return 0;
}

 

发现:char* 的指针解引用就只能访问1个字节,而short*的指针的解引用能访问2个字节,而 int* 的指针的解引用就能访问4个字节(x64、x86下的结果一样)

总结:指针的类型决定了,对指针解引用的时候有多大的权限(一次能操作几个字节)

 6.指针+或-整数

#include <stdio.h>
int main()
{int n = 0x12345678;//十六进制存储int* pi = &n;short* ps = &n;char* pc = &n; printf("&n=%p\n",&n);printf("pi+1=%p\n",pi+1);printf("ps+1=%p\n",ps+1);printf("pc+1=%p\n",pc+1);return 0;
}

发现:char* 类型的指针变量+1跳过1个字节, int* 类型的指针变量+1跳过了4个字节,short* 类型的指针变量+1跳过2个字节(同理+2,-1,-2……+n,-n)

总结:指针的类型决定了指针向前或者向后走一步有多大(距离)

7.特殊类型void* 指针

*定义:无具体类型的指针(或者叫泛型指针)

*注意:这种类型的指针可以用来接受任意类型地址,但是也有局限性:不能直接进行指针的+-整数和解引用的运算(*pv=? 错误 pv+1 错误),除非强制类型转换( *(int*)pv=200 )

#include <stdio.h>
int main()
{int n = 0x12345678;//十六进制存储short* ps = &n;return 0;
}

运行后会报警告:

但如果用:

#include <stdio.h>
int main()
{int n = 0x12345678;//十六进制存储void* pv = &n;return 0;
}

则没有问题

注:一般void* 类型的指针是使用在函数参数的部分,用来接收不同类型数据的地址,这样的设计可以实现泛型编程的效果

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

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

相关文章

代码随想录算法训练营day39||动态规划07:多重背包+打家劫舍

多重背包理论 描述&#xff1a; 有N种物品和一个容量为V 的背包。 第i种物品最多有Mi件可用&#xff0c;每件耗费的空间是Ci &#xff0c;价值是Wi 。 求解将哪些物品装入背包可使这些物品的耗费的空间 总和不超过背包容量&#xff0c;且价值总和最大。 本质&#xff1a; …

yolov8旋转目标检测部署教程(附代码c++/python)

为了编写一个详细的YOLOv8旋转目标检测ONNX部署教程&#xff0c;我们需要考虑几个关键点&#xff1a;模型转换为ONNX格式、ONNX模型的部署以及后处理逻辑。由于YOLOv8本身还未发布&#xff0c;我们将基于现有的知识和技术来进行推断。 以下是部署YOLOv8旋转目标检测模型到ONNX…

【经验分享】ShardingSphere+Springboot-03 : COMPLEX_INLINE 复杂行表达式分片算法

文章目录 3.3 复杂分片算法3.3.1 COMPLEX_INLINE 复杂行表达式分片算法 3.3 复杂分片算法 3.3.1 COMPLEX_INLINE 复杂行表达式分片算法 复合分片比较灵活&#xff0c;适合于分片的字段比较多&#xff0c;分片比较复杂的场景&#xff0c;使用这种分片的话必须对自己的业务比较…

AWS生成式AI项目的全生命周期管理

随着人工智能技术的迅速发展&#xff0c;生成式 AI 已成为当今最具创新性和影响力的领域之一。生成式 AI 能够创建新的内容&#xff0c;如文本、图像、音频等&#xff0c;具有广泛的应用前景&#xff0c;如自然语言处理、计算机视觉、创意设计等。然而&#xff0c;构建一个成功…

PythonStudio 控件使用常用方式(十八)TCategoryButtons

PythonStudio是一个极强的开发Python的IDE工具&#xff0c;它使用的是Delphi的控件&#xff0c;常用的内容是与Delphi一致的。但是相关文档并一定完整。现在我试试能否逐步把它的控件常用用法写一点点&#xff0c;也作为PythonStudio的参考。 从1.2.1版开始&#xff0c;Python…

jsp-图书管理系统

一、系统介绍 本系统为图书管理系统&#xff0c;主要围绕图书管理和会员管理两个核心内容展开&#xff0c;图书管理包括图书的上架&#xff0c;下架&#xff0c;图书的借阅&#xff0c;归还&#xff0c;定损等&#xff1b; 会员管理包括会员注册&#xff0c;充值&#xff0c;损…

【Datawhale X 魔搭 】AI夏令营第四期AIGC方向,Task1:可图Kolors-LoRA风格AI图片生成入门(持续更新)

第一步&#xff1a;下载baseline文件 &#xff08;1&#xff09;安装lfs&#xff0c;用于git脚本命令下载大文件 git lfs install 在AI模型和数据集中&#xff0c;通常包含一些较大的文件&#xff0c;例如图像或模型参数。这些文件可能会超过普通Git仓库的处理能力。git lfs 可…

【Linux SQLite数据库】一、SQLite交叉编译与移植

SQLite 是一个用 C 语言编写的开源、轻量级、快速、独立且高可靠性的 SQL 数据库引擎&#xff0c;它提供了功能齐全的数据库解决方案。SQLite 几乎可以在所有的手机和计算机上运行&#xff0c;它被嵌入到无数人每天都在使用的众多应用程序中。此外&#xff0c;SQLite 还具有稳定…

【电控笔记z6】无感文献综述

高频注入 afabeta注入 lq/ld越大统好 凸极性大反电动势ZVCD pwm电压向量为主 增加动态特性 设计隆博戈估测器 高频注入: lq/ld比较大 运用在低转速 到高速的时候 , 切换到model_base的方法进行反电动势侦测 smo :速度无法很低 有个极限 受杂讯影响大 高速时候用 总结 用spm …

UE基础 —— 编辑器界面

菜单栏 UE中每个编辑器都有一个菜单栏&#xff0c;部分菜单会出现在所有编辑器窗口中&#xff0c;如File、Window、Help&#xff0c;其他则是其编辑器特有的&#xff1b; 主工具栏 UE中部分最常用的工具和命令的快捷方式&#xff1b; 1&#xff0c;保存按钮&#xff08;ctrls&a…

深入探索大模型:从基础到实践,开启AI之旅

摘要&#xff1a; 在人工智能领域&#xff0c;大模型技术正成为推动创新和进步的关键力量。对于初学者而言&#xff0c;掌握大模型的基本概念、理论和技术是至关重要的。 本文将为你提供一个全面的学习路线&#xff0c;帮助你从基础知识出发&#xff0c;逐步深入到大模型的实践…

探索Python的文本转换魔法:html2text库的奥秘

文章目录 **探索Python的文本转换魔法&#xff1a;html2text库的奥秘**背景&#xff1a;为何选择html2text&#xff1f;这个库是什么&#xff1f;如何安装这个库&#xff1f;简单使用&#xff1a;5个基本函数介绍场景应用&#xff1a;3个实际使用示例常见问题与解决方案总结 探…

Linux 进程调度(三)之进程的优先级

目录 一、概述二、进程的优先级1、基础概念2、优先级的意义3、查看优先级4、PRI 和 NI5、修改优先级6、控制进程的优先级的系统调用7、调整优先级的限制 一、概述 在 Linux 中&#xff0c;每个进程都有一个优先级。优先级决定了进程在系统资源分配中的先后顺序。Linux 中的进程…

NBT:单细胞转录组新降维可视化方法PHATE

新降维可视化 NGS系列文章包括NGS基础、转录组分析 &#xff08;Nature重磅综述|关于RNA-seq你想知道的全在这&#xff09;、ChIP-seq分析 &#xff08;ChIP-seq基本分析流程&#xff09;、单细胞测序分析 (重磅综述&#xff1a;三万字长文读懂单细胞RNA测序分析的最佳实践教程…

vue 日期控件 100天内的时间禁用不允许选择

vue 日期控件 100天内的时间禁用不允许选择&#xff0c;可以从101天选起 比如&#xff0c;2024年8月9号开始&#xff0c;100天内禁止选择&#xff0c;第101天之后的日期可以选&#xff0c;效果如图所示 // 日期控件代码 加上 :picker-options"pickerOptions" <…

nestjs 全栈进阶--windows安装docker desktop

一. 下载软件 https://docs.docker.com/desktop/install/windows-install/ 根据你自己的电脑选择 二. 安装 双击下载的exe 点击ok 安装好后 桌面会有个这样的图标 三. 配置环境 因为docker desktop 是可以部署在windows 上来运行docker的应用服务的&#xff0c;其基于windo…

SOPHGO算能科技BM1684盒子占用空间满的问题解决

目录 1 问题由来 2 问题排查与解决 1 问题由来 安装软件的时候发现&#xff0c;软件根本安装不上了&#xff0c;用df -h看到根目录已经满了 rootbm1684:~# df -h Filesystem Size Used Avail Use% Mounted on overlay 5.8G 5.7G 0 100% / devtmpfs …

openfeign本地试用

目的&#xff1a;在本地搭建一个简单的openfeign使用场景&#xff0c;测试查询、新增等功能 平台&#xff1a;win10 技术栈&#xff1a;Springboot, SpringCloud, Nacos, Mybatis, MySql, Logback 框架作用说明&#xff1a; Nacos用于服务注册&#xff0c;将provider应用注…

Redis 的6种回收策略(淘汰策略)详解

Redis 的6种回收策略&#xff08;淘汰策略&#xff09;详解 1、Redis的六种淘汰策略1. volatile-lru2. volatile-ttl3. volatile-random4. allkeys-lru5. allkeys-random6. no-eviction 2、使用策略规则 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&am…

将电脑打造成私人网盘,支持外网访问之详细操作教程

你想过把自己电脑打造成随时随地访问的网盘吗&#xff1f;就是那种拥有一个属于自己的影音库&#xff0c;不用担心被和谐&#xff0c;随时可以登录访问电脑上的各种文件&#xff0c;相比传统网盘省心又安全。 使用Everything和节点小宝将电脑搭建成私人网盘&#xff0c;可以实现…