C语言中 指针类型的意义

news2025/1/23 16:08:07

对于初学者也包括我来说指针不就是来存放地址的吗 应该会有一个疑惑 为什么还有那么多类型char*  int*等等不都能存放一个地址无论是整形还是字符 那这个指针类型能有什么意义呢 

有的有的兄弟 他的真正意义就在于解引用上面*p

指针类型决定了 指针进行解引用操作时 一次能访问几个字节的空间 是访问权限的大小

比如char*的指针 解引用访问1个字节的空间

比如int* 的指针 解引用访问4个字节的空间

比如double*的指针 解引用访问8个字节的空间

...........

接下来给出一段代码实例

#include<stdio.h>
int main()
{
	int a = 0x11223344;
	char* pa= &a;
	*pa = 0;
	
	return 0;
}

我们调试起来看内存的情况  找到a的地址

可以看到a再内存中的存储是倒着放的 在小端存储中是这样的 大端存储就是正着放的了

继续往下走到*pa = 0;这一步完成之后 a的内存存贮会发生这样的变化

44 变成了 00   那为什么不是全变成0呢

这就是指针类型在搞鬼 我们知道16进制的数字中2位代表一个字节的大小 char*解引用时正好访问一个字节的大小的权限 只改变44就说的通了

指针的类型也决定了指针的步长针对的是指针变量的本身(指针+1跳过几个字节的长度)

字符指针+1,就跳过1个字节

整形指针+1,就跳过4个字节

.................

代码展示

#include<stdio.h>
int main()
{
	int a = 0x11223344;
	char* pa= &a;
	for (int i = 0; i < 2; i++)
	{
		*pa = 0;
		pa++;
	}
	return 0;
}

a的在内存中的存储变化↓

循环两次只改变两个字节的存储情况

实质上还是地址的变化

#include<stdio.h>
int main()
{
	int a = 0x11223344;
	int* pa = &a;
	printf("%p\n", pa);
	printf("%p", pa + 1);
	return 0;
}

在16进制中c代表12
8 + 4 = 12  正好跳过四个字节

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

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

相关文章

easyexcel读取写入excel easyexceldemo

1.新建springboot项目 2.添加pom依赖 <name>excel</name> <description>excelspringboot例子</description><parent> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId&…

数据结构(精讲)----栈 stack

什么是栈 栈是只能在一端进行插入和删除操作的线性表(又称为堆栈)&#xff0c;进行插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。 特点&#xff1a;栈是先进后出FILO(First In Last Out) (LIFO(Last In First Out)) 顺序栈 特性 逻辑结构&#xff1a;线性结构…

Hexo + NexT + Github搭建个人博客

文章目录 一、 安装二、配置相关项NexT config更新主题主题样式本地实时预览常用命令 三、主题设置1.侧边栏2.页脚3.帖子发布字数统计 4.自定义自定义页面Hexo 的默认页面自定义 404 页自定义样式 5.杂项搜索服务 四、第三方插件NexT 自带插件评论系统阅读和访问人数统计 五、部…

I2S是什么通信协议?它如何传输音频数据?它和I2C是什么关系?

首先我们先明确一点&#xff0c;I2S和I2C没有什么关系&#xff0c;如果非要扯点共同点的话那就是它们都是由飞利浦制定的。 I2C我们用的比较多&#xff0c;我们用的大多数的传感器模块用的通信协议就是I2C&#xff0c;SPI&#xff0c;UART这些。 而I2S应用领域比较单一&#…

大模型:LangChain技术讲解

一、什么是LangChain 1、介绍 LangChain是一个用于开发由大型语言模型提供支持的Python框架。它提供了一系列工具和组件&#xff0c;帮助我们将语言模型集成到自己的应用程序中。 有了它之后&#xff0c;我们可以更轻松地实现对话系统、文本生成、文本分类、问答系统等功能。…

【2024 博客之星评选】请继续保持Passion

我尝试复盘自己2024年走的路&#xff0c;希望能给诸君一些借鉴。 文章目录 回头望感想与收获成长与教训今年计划感恩一些体己话 回头望 回望我的2024年&#xff0c;年初拿高绩效&#xff0c;但感觉逐渐被公司一点点剥离出中心&#xff1b;年中一直在学习防患于未然&#xff1b…

Node.js接收文件分片数据并进行合并处理

前言&#xff1a;上一篇文章讲了如何进行文件的分片&#xff1a;Vue3使用多线程处理文件分片任务&#xff0c;那么本篇文章主要看一下后端怎么接收前端上传来的分片并进行合并处理。 目录&#xff1a; 一、文件结构二、主要依赖1. express2. multer3. fs (文件系统模块)4. pat…

【2025小年源码免费送】

&#x1f496;学习知识需费心&#xff0c; &#x1f4d5;整理归纳更费神。 &#x1f389;源码免费人人喜&#xff0c; &#x1f525;码农福利等你领&#xff01; &#x1f496;山高路远坑又深&#xff0c; &#x1f4d5;大军纵横任驰奔&#xff0c; &#x1f389;谁敢横刀立马行…

【JavaSE】(8) String 类

一、String 类常用方法 1、构造方法 常用的这4种构造方法&#xff1a;直接法&#xff0c;或者传参字符串字面量、字符数组、字节数组。 在 JDK1.8 中&#xff0c;String 类的字符串实际存储在 char 数组中&#xff1a; String 类也重写了 toString 方法&#xff0c;所以可以直…

css普通用法

Css普通用法 这是一个链接 W3C&#xff0c;用这个语法可以访问W3C,自己可以去看更加详细的内容。 基本语法 名字{ 类型&#xff1a;参数 类型&#xff1a;参数 }a{ color:blue }引入方法 直接在html之中进行带入到html代码之中&#xff0c;文件不需要重新写一个&#xff0c…

大数据Hadoop中MapReduce的介绍包括编程模型、工作原理(MapReduce、MapTask、ReduceTask、Shuffle工作原理)

MapReduce概述 MapReduce是Hadoop的核心项目之一&#xff0c;它是一个分布式计算框架&#xff0c; 可用于大数据并行处理的计算模型、框架和平台&#xff0c;主要解决海量数据的计算&#xff0c;是大数据中较为熟知的分布式计算框架。 MapReduce作为分布式计算框架&#xff0…

【学习笔记】计算机网络(一)

第1章 概述 文章目录 第1章 概述1.1 计算机网络在信息时代中的作用1.2 互联网概述1.2.1 网络的网络1.2.2互联网基础结构发展的三个阶段1.2.3 互联网的标准化工作 1.3 互联网的组成1.3.1 互联网的边缘部分1.3.2 互联网的核心部分 1.4 计算机网络在我国的发展1.5 计算机网络的类别…

[OpenGL]实现屏幕空间环境光遮蔽(Screen-Space Ambient Occlusion, SSAO)

一、简介 本文介绍了 屏幕空间环境光遮蔽(Screen-Space Ambient Occlusion, SSAO) 的基本概念&#xff0c;实现流程和简单的代码实现。实现 SSAO 时使用到了 OpenGL 中的延迟着色 &#xff08;Deferred shading&#xff09;技术。 按照本文代码实现后&#xff0c;可以实现以下…

KubeSphere 开源社区 2024 年度回顾与致谢

随着 2024 年圆满落幕&#xff0c;我们回顾 KubeSphere 社区这一年走过的每一步&#xff0c;感慨万千。2024 年&#xff0c;KubeSphere 继续领跑云原生技术的创新与发展&#xff0c;推动开源文化的传播&#xff0c;致力于为全球开发者和企业用户提供更强大的平台和解决方案。感…

ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档

一、云电脑&#xff1a;电竞新宠崛起 在电竞游戏不断发展的今天&#xff0c;硬件性能成为了决定游戏体验的关键因素。为了追求极致的游戏画面与流畅度&#xff0c;玩家们往往需要投入大量资金购置高性能电脑。然而&#xff0c;云电脑技术的出现&#xff0c;为玩家们提供了一种…

GitCode 助力 AutoTable:共创 MyBatis 生态的自动表格管理新篇章

项目仓库https://gitcode.com/dromara/auto-table 解放双手&#xff0c;专注业务&#xff1a;MyBatis 生态的“自动表格”创新 AutoTable 是一款致力于为 MyBatis 生态赋予“自动表格”功能的创新插件。其核心理念是通过 Java 实体类自动生成和维护数据库的表结构&#xff0c…

【useLayoutEffect Hook】在浏览器完成布局和绘制之前执行副作用

目录 前言语法useLayoutEffect 对比 useEffect&#xff1a;示例 前言 useLayoutEffect 是 React 中的一个 Hook&#xff0c; 类似于 useEffect&#xff0c;但有一个关键的区别&#xff1a;它会在所有的 DOM 变更之后同步调用 effect。这意味着它可以读取 DOM 布局并同步重新渲…

vue3-sfc-loader 加载远程.vue文件(sfc)案例

注意事项 style标签如果增加了lang比如&#xff1a;lang“scss”&#xff0c;需要提供scss-loader的处理器&#xff0c;这个暂时没研究&#xff0c;我的处理方式是将动态模版的css放在了全局打包暂时还没有测试&#xff0c;后面测试了会同步更新 安装vue3-sfc-loader npm inst…

AIGC的企业级解决方案架构及成本效益分析

AIGC的企业级解决方案架构及成本效益分析 一,企业级解决方案架构 AIGC(人工智能生成内容)的企业级解决方案架构是一个多层次、多维度的复杂系统,旨在帮助企业实现智能化转型和业务创新。以下是总结的企业级AIGC解决方案架构的主要组成部分: 1. 技术架构 企业级AIGC解决方…

NSIS系统制作Windows下的简易的安装程序

一. 前言 NSIS&#xff08;Nullsoft Scriptable Install System&#xff09;是一个专业的开源系统&#xff0c;用于创建 Windows 安装程序。拥有小巧而灵活的特点&#xff0c;受到很多用户的赞赏。 NSIS 基于脚本语言&#xff0c;允许您创建逻辑来处理比较复杂的安装任务。 官…