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

『C + ⒈』指针

【博主简介】全网技术博客粉丝量十万全网技术博客学习数百万CSDN博客专家领域专家2021年博客之星物联网与嵌入式开发TOP52022年博客之星物联网与嵌入式开发TOP42021年2022年C站百大博主华为云开发者社区专家博主阿里云开发者社区专家博主掘金INFOQ腾讯云优秀博主目录指针 指针变量指针解引用概念解引用操作指针 指针变量首先问问大家一个小问题「指针和指针变量是同一个概念吗请选择你的答案﹗」A ― No[不]B ― Yes[是]C ― I don′t kown[我不知道]答案 ⇢ 不是 严格区分的话指针和指针变量它是属于两种概念。⒈在[C语言]上使用大部分的内容并不是指针严格意义上是指针变量。⒉在指针上严格意义上来说就是地址而指针变量它是一个变量就是存储(保存)地址数据。所以为什么博主在前面的文章实际上就说过 [指针地址] 地址是十六进制数据。那么现在我们通过就知道这两点到底是什么意思了。⒊指针是一个地址指针变量是一个变量。Ⅰ为什么需要指针答案因为通过指针可以提高CPU(中央处理器)寻址的效率所以我们必须得有指针。Ⅱ 什么是指针答案很简单记住指针就是地址。Ⅲ 地址是数据吗答案地址肯定是数据的这就相当于我和你说你家的门牌号小区号它是不是数据答案是肯定是啊因为门牌号上面不就是数字吗。那么我们就可以知道地址实际上是一种特殊的数据但它肯定是数据没错的。Ⅳ 地址需要开辟空间存储吗答案不需要。内存地址在计算机当中其实是通过硬件电路编址去完成的。Ⅴ数据可以被保存吗答案可以。地址就是数据地址可以被指针变量进行保存。拓展知识点⇢任何一个变量名在不同的应用场景当中代表不同的含义。示例代码如下↓int x 1; int y x;第一个x是x的空间变量的属性左值。[开辟的空间]第二个x是x的内容数据的属性右值。[x开辟空间的内容1]第二个示例代码如下↓#includestdio.h int main() { int* q NULL; int a 10; int b 20; int* p a; printf(*p %d\na %d, *p, a); p b; printf(\n*p %d\na %d\n, *p, a); q p; printf(*q %d\n, *q); }运行结果*p 10a 10*p 20 注→这里只是改变了指针变量p的值并没有改变指向取地址a的值a 10q 20第4行代码→定义了一个整形变量a大小10的值。第6行代码→定义了一根指针变量p指向了取地址a的值。第8行代码→p代表指针变量的空间。第10行代码→p取的是地址(内容)保存变量p的数据赋值给q。注→任何一个变量的地址是不允许被修改的只读属性。其实指针变量它就是变量只是保存的内容不同。指针解引用概念指针解引用的概念记得在我了解指针解引用的概念我是非常迷糊的甚至连下面的这个代码都分不清楚那么我们来看看下面这组代码如下↓int a 20; int *p a;⒈在上述代码当中一共定义两个变量分别是指针变量和整形变量。⒉在右侧的被称之为是字面值又或者是地址常数概念。⒊在这里只要我们定义了变量那么编译器就会给它们两个变量开辟一块空间这里(a)有对应的空间(p)也有对应的空间。⒋这里变量(a)存放的就是字面常数20的值而变量(p)存放的就是(a)的地址。所以为什么有时候会说这个变量(p) -[指向] 这个变量(a)的地址。注:首元素的地址。概念⇢①个(a)整形变量它占用的空间大小是四个字节于是它就具备四个地址。问题¹→我们实际在取地址的时候是取出那个地址。A:第一个B:第二个C:首元素地址D:全部答案:(C)记住一点我们取地址永远都是取最低为的那个地址。结论→任何变量数据类型取地址都是从最低为开始的。解引用操作int a 20; int *p a; *p 40;解引用的概念⇢拿出(p)的地址找到该地址所指向的变量(a) 在这里是(*p)是40的值赋值给对应的(*p)就相当于把40的值直接赋值给到对应变量(a)当中去。int b *p;在上述代码当中的(*p)还是一个解引用的操作找到(p)变量所对指向的地址(a)变量当中通过该地址找到所对应的该变量(a)值然后再把变量(a)的内容赋值给变量(b)的内容。结论→重点对指针进行解引用代表的含义是指针所指向目标的值。前提:类型相同。代码示例如下↓#includestdio.h int main() { int a 20; int* p a; printf(a %d\n*p %d\n, a, *p); *p 40; int b *p; printf(a %d\n*p %d\nb %d\n, a, *p, b); a 50; printf(a %d\n*p %d\nb %d\n, a, *p, b); int c 18; p c; printf(*p %d\na %d, *p, a); }运行结果a 20*p 20a 40*p 40b 40a 50*p 50b 40*p 18a 50简单的来说说倒数第二行代码的含义如下↓注→指针变量的值是可以进行改变的。但是指针变量所对应的地址改变的话同样的指针变量也会跟着发生变化。

相关文章:

『C + ⒈』指针

🔎【博主简介】🔎 🏅全网技术博客粉丝量十万 🏅全网技术博客学习数百万 🏅CSDN博客专家领域专家 🏅2021年博客之星物联网与嵌入式开发TOP5 🏅2022年博客之星物联网与嵌入式开发…...

Qwen3.5-9B多模态基准测试对比:Qwen3-VL超越效果实测分享

Qwen3.5-9B多模态基准测试对比:Qwen3-VL超越效果实测分享 1. 模型概述与核心特性 Qwen3.5-9B是新一代多模态大模型,在视觉-语言理解、推理能力和执行效率等方面实现了显著突破。相比前代Qwen3-VL模型,它在多个关键维度上展现出更强大的性能…...

ClearerVoice-Studio教育行业应用:网课录音增强+教师语音单独提取教学案例

ClearerVoice-Studio教育行业应用:网课录音增强教师语音单独提取教学案例 1. 引言:教育音频处理的痛点与解决方案 在线教育已经成为现代学习的重要方式,但网课录音质量往往令人头疼。背景噪音、学生互动声音、网络传输问题等因素&#xff0…...

告别复杂配置:Qwen3-TTS-Tokenizer-12Hz开箱即用实战体验

告别复杂配置:Qwen3-TTS-Tokenizer-12Hz开箱即用实战体验 1. 为什么选择Qwen3-TTS-Tokenizer-12Hz? 1.1 音频编解码的痛点现状 在语音技术领域工作多年,我见过太多团队在音频编解码环节浪费宝贵时间。常见的问题包括: 环境配置…...

tao-8k Embedding模型入门必看:8K上下文适配原理与使用边界

tao-8k Embedding模型入门必看:8K上下文适配原理与使用边界 1. 什么是tao-8k Embedding模型 tao-8k是一个专门用于文本嵌入的开源AI模型,由Hugging Face开发者amu研发并开源。它的核心功能是将文本转换为高维向量表示(也就是嵌入向量&#…...

Fiber配置验证:启动前的配置合法性检查实现

Fiber配置验证:启动前的配置合法性检查实现 【免费下载链接】fiber ⚡️ Express inspired web framework written in Go 项目地址: https://gitcode.com/GitHub_Trending/fi/fiber Fiber是一个受Express启发的Go Web框架,以其高性能和简洁API著称…...

SAP S4HANA物料主数据配置新特性:40位物料号扩展实战教程

SAP S4HANA物料主数据配置新特性:40位物料号扩展实战教程 在数字化转型浪潮中,企业资源规划系统的升级成为提升运营效率的关键一步。作为SAP最新一代智能ERP套件,S4HANA在物料主数据管理方面带来了多项突破性改进,其中最引人注目的…...

Harmonyos应用实例146:将军饮马问题演示

应用实例六:将军饮马问题演示 知识点:第十三章《轴对称》—— 最短路径问题。 功能:动态演示经典的"将军饮马"问题。屏幕上有点A(将军)、点B(营地)和一条直线L(河流)。学生移动A或B,系统自动找出对称点A’,连接A’B与直线的交点P,展示为何AP+PB最短。 …...

Harmonyos应用实例148:完全平方公式拼图

应用实例八:完全平方公式拼图 知识点:第十四章《整式的乘除与因式分解》—— 乘法公式。 功能:将 (a+b)2=a2+2ab+b2(a+b)^2 = a^2 + 2ab + b^2(a+b)...

Dioxus移动端导航设计:符合平台规范的交互模式

Dioxus移动端导航设计:符合平台规范的交互模式 【免费下载链接】dioxus 该全栈图形用户界面(GUI)库可用于开发桌面、Web、移动设备以及更多平台上的应用程序。 项目地址: https://gitcode.com/GitHub_Trending/di/dioxus Dioxus是一个…...

Apktool流解码容器:深度解析Android资源解码机制

Apktool流解码容器:深度解析Android资源解码机制 【免费下载链接】Apktool A tool for reverse engineering Android apk files 项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool Apktool流解码容器是Android逆向工程中处理APK资源文件的核心组件&…...

用STM32和US100超声波模块DIY一个简易防撞报警器(附OLED显示和蜂鸣器报警代码)

用STM32和US100打造智能防撞系统:从硬件搭建到报警逻辑优化 项目背景与核心功能设计 超声波测距技术在智能家居、机器人避障和工业检测等领域有着广泛应用。这个项目将带领你完成一个基于STM32和US100超声波模块的防撞报警系统,具备实时距离显示和蜂鸣器…...

在蒙尘之前,让光透进来——基于“青年玄学热”现象的现象学反思

在蒙尘之前,让光透进来——基于“青年玄学热”现象的现象学反思笔者:岐金兰(人机协作2026.3.20)目录导论:一个现象,两种读法第一章 主体性研究:社会科学如何解释“青年玄学”1.1 三种形式的分类…...

CCS工程库配置疑难杂症:从RTSC到裸机的路径修复实战

1. CCS工程库报错问题全景分析 第一次在CCS里新建工程时,看到满屏红色报错真是头皮发麻。明明按照官方文档一步步操作,为什么连最基本的库都找不到?这其实是嵌入式开发者的"成人礼"——我当年用TMS320F28335做电机控制时&#xff0…...

固件级供应链攻击正在爆发(2024全球漏洞报告实证):C语言构建链检测流程紧急升级指南

第一章:固件级供应链攻击的现状与威胁建模固件作为硬件与操作系统之间的信任锚点,正日益成为高级持续性威胁(APT)组织在供应链中植入持久化后门的首选目标。与传统软件层攻击不同,固件级攻击具有高度隐蔽性、跨平台兼容…...

测试数据管理案例:生产环境数据脱敏体系构建与落地指南

一、数据脱敏:测试安全的关键防线1.1 生产数据的双刃剑特性真实性价值:生产数据包含真实业务逻辑、用户行为模式及系统边界场景安全风险:93%的数据泄露事件源于非生产环境(Verizon DBIR 2025报告)合规刚需:…...

Jitsi Meet REST API应用:会议管理自动化脚本开发

Jitsi Meet REST API应用:会议管理自动化脚本开发 【免费下载链接】jitsi-meet Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application. 项目地址: https://gitcode.com/GitHub_Trendi…...

Terragrunt vs Terraform:为什么专业团队都在转向这个工具?

Terragrunt vs Terraform:为什么专业团队都在转向这个工具? 【免费下载链接】terragrunt gruntwork-io/terragrunt: Terragrunt 是一款基于Terraform工具构建的基础设施即代码(IaC)工具,用于简化大规模基础设施部署的管理和组织。Terragrunt提…...

DbVisualizer和DBeaver启动报错?试试这个管理员权限的终极解决方案

DbVisualizer与DBeaver启动报错全解析:从权限问题到环境配置的深度解决方案 每次双击数据库工具图标时弹出的报错窗口,就像一堵无形的墙挡在你和数据之间。对于依赖DbVisualizer和DBeaver的开发者来说,这些看似随机的JVM、JDK报错信息背后&am…...

RancherConfigMap挂载:将配置文件注入容器的多种方式

RancherConfigMap挂载:将配置文件注入容器的多种方式 【免费下载链接】rancher Complete container management platform 项目地址: https://gitcode.com/GitHub_Trending/ra/rancher Rancher作为一款完整的容器管理平台,提供了灵活的配置管理方案…...

OSX-KVM性能监控工具:如何实时跟踪虚拟机资源占用

OSX-KVM性能监控工具:如何实时跟踪虚拟机资源占用 【免费下载链接】OSX-KVM Run macOS on QEMU/KVM. With OpenCore Big Sur Monterey Ventura support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is require…...

2025阴阳师智能辅助工具:技术革新与效率突破

2025阴阳师智能辅助工具:技术革新与效率突破 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 阴阳师作为一款经典的回合制手游,其丰富的游戏内容和复杂的养…...

GitHub Linguist与编辑器集成:VSCode插件开发实例

GitHub Linguist与编辑器集成:VSCode插件开发实例 【免费下载链接】linguist Language Savant. If your repositorys language is being reported incorrectly, send us a pull request! 项目地址: https://gitcode.com/GitHub_Trending/li/linguist GitHub …...

解密Doris副本同步机制:Raft协议在分布式查询中的特殊优化

Doris副本同步机制的深度优化:Raft协议在OLAP场景下的创新实践 在分布式数据库领域,副本同步机制是确保数据高可用和一致性的核心技术。Apache Doris作为一款高性能的MPP分析型数据库,其副本管理系统在标准Raft协议基础上进行了多项创新优化&…...

DC-9靶场渗透实战:从SQL注入到SSH爆破的完整通关指南(附避坑技巧)

DC-9靶场渗透实战:从SQL注入到SSH爆破的完整通关指南(附避坑技巧) 在网络安全学习过程中,靶场渗透是提升实战能力的最佳途径之一。DC-9作为经典的渗透测试靶场,融合了SQL注入、SSH爆破、端口敲门服务等多个典型漏洞场景…...

轻量级华硕硬件控制工具:G-Helper从问题诊断到深度优化指南

轻量级华硕硬件控制工具:G-Helper从问题诊断到深度优化指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项…...

ComfyUI组件兼容性问题解决方案完全指南:从启动异常到工作流优化

ComfyUI组件兼容性问题解决方案完全指南:从启动异常到工作流优化 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 问题定位:组件兼容性问题的诊断流程 在使用ComfyUI进行AI创作时,你…...

DeepSeek-V2的未来路线图:功能规划与版本迭代

DeepSeek-V2的未来路线图:功能规划与版本迭代 【免费下载链接】DeepSeek-V2 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-V2 DeepSeek-V2作为当前最先进的混合专家(MoE)语言模型,在性能、效率和成本控制方…...

Win11文件管理器左侧导航栏自定义:移除‘主文件夹’与‘图库’的注册表修改指南

1. 为什么要自定义Win11文件管理器导航栏 每次打开Win11的文件管理器,左侧导航栏里那些用不到的"主文件夹"和"图库"是不是让你觉得特别碍眼?我刚开始用Win11的时候也特别不习惯,明明自己根本用不到这些功能入口&#xff…...

实测对比:在Argoverse 2数据集上,DeMo模型比QCNet快2.5倍的部署优化心得

实测对比:DeMo模型在Argoverse 2数据集上的部署优化与效率突破 自动驾驶技术正经历从实验室到产业落地的关键转型期,而轨迹预测作为决策系统的核心模块,其效率直接影响着车载计算平台的实时响应能力。在近期开源的DeMo框架中,我们…...