C学习笔记(十一):指针详解
一、为什么需要指针普通变量保存的是数据本身。例如int a 10;变量a中保存10但是计算机在内存中存储数据时每个数据都有自己的存储位置。例如内存 地址 数据 0x1000 10其中10是数据0x1000是数据存储的位置。这个位置称为地址。指针的作用通过地址直接访问内存空间。因此指针可以让程序更高效更灵活更方便地操作内存。二、内存地址1. 什么是地址计算机为了区分不同的内存空间会给每个内存空间编号。这个编号就是内存地址。例如地址 数据 1000 20 1004 30程序通过地址找到对应的数据。2. 内存按字节编址计算机中的内存按字节进行编号。例如0x0000 0x0001 0x0002 0x0003 ...每一个地址对应一个字节空间。三、指针的概念1. 什么是指针指针可以理解为地址。地址就是指针。例如变量int a 10;假设a所在地址 0x1000那么0x1000就是变量a的指针。2. 指针变量用于保存地址的变量称为指针变量。例如int *p;表示定义一个指向int类型数据的指针变量p。关系普通变量 a ↓ 保存数据10 指针变量 p ↓ 保存地址0x1000四、取地址运算符 1. 功能获取变量的地址。例如int num 10; printf(%p,num);输出num的地址2. 使用规则只有左值才能进行取地址操作。例如正确a错误10原因常量没有存储空间。3. 类型变化例如int a;a类型int执行a之后类型变为int *即int类型指针。五、取值运算符 *1. 功能*根据地址访问对应空间的数据。例如int a10; int *pa;此时p ↓ a的地址使用*p表示访问a中的数据。结果102. 修改变量值例如int a10; int *pa; *p20;执行后a变为20原因*p代表p指向的空间。3. 类型变化例如int *p;执行*p类型int即指针类型降级。六、指针变量定义格式数据类型 *变量名;例如int *p; char *q; float *r; double *s;表示不同类型的指针。指针变量大小无论什么类型int * char * float * double *指针变量本身大小都是8字节因为保存的是地址。七、野指针1. 什么是野指针野指针未初始化的指针或者指向已经释放空间的指针。例如int *p; *p10;此时p没有指向有效空间。程序可能崩溃。2. 如何避免定义指针后不要直接使用。应该int a; int *pa;或者int *pNULL;八、空指针 NULL空指针指向地址0的指针。例如int *pNULL;表示p暂时不指向任何有效空间。注意不能*p10;因为NULL地址不可访问。会导致程序崩溃。九、指针类型不同类型指针int *p; char *p; float *p; double *p;区别指向空间的数据类型不同。例如int *p;表示p指向4字节整数空间。十、指针的算术运算指针支持指针相减1. 指针例如int *p; p;不是增加1字节。而是增加sizeof(int)个字节。例如int占4字节地址 1000 ↓ 10042. 指针--类似向低地址移动。3. 指针相减例如p1-p2得到两个地址之间相差多少个元素。十一、指针操作指针有两种操作方式。1. 修改指针本身例如pb;改变p的指向。2. 修改指针指向的数据例如*p100;改变指向空间中的值。示例int a100; int b200; int *pa; pb;改变p指向b。而*p300;改变b的值。十二、指针作为函数参数前面学习函数传参默认是值传递。1. 值传递例如void change(int a) { a100; }调用int x10; change(x);结果x仍然是10因为形参只是副本。2. 地址传递如果想修改外部变量需要传地址。例如void change(int *p) { *p100; }调用int x10; change(x);执行后x100地址传递作用修改函数外部变量一个函数返回多个结果。十三、数组与指针关系C语言中数组名本质上是指向数组第一个元素的指针常量。例如int a[5]{1,2,3,4,5};数组名a等价于a[0]例如int *pa;表示p指向数组第一个元素。访问a[2]等价于*(a2)也等价于*(p2)十四、一维数组指针传参数组作为函数参数例如int fun(int array[],int len);等价于int fun(int *array,int len);示例冒泡排序函数void BubbleSort(int *array,int len) { }调用BubbleSort(a,10);数组地址传入函数。注意数组传参时函数中操作的数组和外部数组是同一个空间。因此可以直接修改数组内容。

相关新闻

外贸客户拖欠货款风险上升:BBWEYY GEO如何优化客户来源结构,含零代码SAAS、AI编程、源码定制交付

外贸客户拖欠货款风险上升:BBWEYY GEO如何优化客户来源结构,含零代码SAAS、AI编程、源码定制交付

外贸经营风险对比分析 外贸客户拖欠货款风险上升:BBWEYY GEO如何优化客户来源结构 通过内容吸引重视专业与长期合作的客户 核心结论 GEO不能消除坏账,但可以通过专业内容和明确条件减少只关注赊销与低价的客户进入销售流程。 一、问题为什么越来越突…

2026/8/1 5:56:59 阅读更多 →
OpenAI GPT Transcribe非流式语音转录模型:高精度音频转文字技术解析与实践

OpenAI GPT Transcribe非流式语音转录模型:高精度音频转文字技术解析与实践

OpenAI 最新发布的 GPT Transcribe 非流式语音转录模型,为语音转文字领域带来了新的技术突破。这个模型专门针对高精度、非实时场景的音频转录需求设计,在准确率和长音频处理能力上表现出色。从官方信息来看,GPT Transcribe 的核心优势在于其…

2026/8/1 5:56:59 阅读更多 →
枚举基础用法详解

枚举基础用法详解

// 枚举基础用法:声明、赋值、输出、比较和switch控制 enum Apple {Jonathan, GoldenDel, RedDel, Winesap, Cortland }class EnumDemo {public static void main(String args[]) {Apple ap Apple.RedDel;System.out.println("Value of ap: " ap); // 输…

2026/8/1 5:56:59 阅读更多 →

最新新闻

TranslucentTB启动问题终极指南:从VCLibs缺失到透明任务栏的完整解决方案

TranslucentTB启动问题终极指南:从VCLibs缺失到透明任务栏的完整解决方案

TranslucentTB启动问题终极指南:从VCLibs缺失到透明任务栏的完整解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Tra…

2026/8/1 11:24:03 阅读更多 →
A2O MAY全球影响力持续升温 新歌《心跳赫兹(Love Got Me Ooh)》即将首登韩国音乐节目

A2O MAY全球影响力持续升温 新歌《心跳赫兹(Love Got Me Ooh)》即将首登韩国音乐节目

由A2O Entertainment(以下简称“A2O”)推出的全球女团A2O MAY(成员包括朱晨予 CHENYU、李诗洁 SHIJIE、曲唱 QUCHANG、陈佳仪 MICHE、陈佳辰 KAT)凭借在中国及美国市场持续积累的亮眼成绩,进一步将影响力延伸至韩国。随…

2026/8/1 11:24:03 阅读更多 →
骆驼三防冲锋衣技术解析:防水防风透气原理与户外实测

骆驼三防冲锋衣技术解析:防水防风透气原理与户外实测

防风防水三合一运动外套推荐:骆驼CAMEL AD12263514X三防冲锋衣,真的防得住吗? 户外运动爱好者最头疼的就是天气突变带来的困扰,一件性能可靠的冲锋衣能让你在风雨中保持干爽舒适。骆驼CAMEL AD12263514X三防冲锋衣作为市场上的热门…

2026/8/1 11:24:03 阅读更多 →
AI如何接管并发控制?深度解析LLM驱动的自动线程调度与锁优化(2024最新工业实践)

AI如何接管并发控制?深度解析LLM驱动的自动线程调度与锁优化(2024最新工业实践)

更多请点击: https://codechina.net 第一章:AI驱动并发控制的范式革命 传统并发控制依赖静态锁策略、两阶段锁(2PL)或乐观并发控制(OCC),其调度逻辑与数据访问模式解耦,难以适应动态…

2026/8/1 11:24:03 阅读更多 →
前端AES加密逆向实战:从4399游戏抓包到Python解密全解析

前端AES加密逆向实战:从4399游戏抓包到Python解密全解析

1. 项目缘起:一次偶然的“寻宝”之旅那天,我像往常一样在分析一些网络应用的交互逻辑,无意间点开了一个基于4399平台的小游戏。我的目的很简单,就是想看看它的资源加载和分数上传机制是怎么实现的。作为一名老“手艺人”&#xff…

2026/8/1 11:23:03 阅读更多 →
自然语言处理API集成指南:从模型兼容性到生产环境部署

自然语言处理API集成指南:从模型兼容性到生产环境部署

在实际开发中,很多开发者希望将先进的自然语言处理能力集成到自己的应用中,但面对复杂的模型接口、计费规则和部署流程时常常感到无从下手。特别是当遇到模型版本不匹配、API调用失败或会员订阅问题时,如果没有清晰的排查思路,很容…

2026/8/1 11:23:03 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/8/1 10:33:33 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →