1. 指针是什么首先简单来说指针就是存储内存地址的变量所以其本质也就是一个变量用来存储唯一区别是存储的内容不同。在计算机内存中每个字节都有一个唯一的地址就像每个房间都有门牌号一样。指针变量存储的就是这个门牌号通过这个地址我们可以直接访问和操作内存中的数据。2. 指针的基本语法2.1 指针的声明指针的声明使用星号(*)运算符int *p; // 声明一个指向整型的指针 char *c; // 声明一个指向字符的指针 float *f; // 声明一个指向浮点数的指针 double *d; // 声明一个指向双精度浮点数的指针需要注意的是对于正常的程序代码来说不同的类型对应的字节数是char--1字节、short--2字节、int--4字节、long--4字节、float--4字节、double--8字节。但是对应生成的指针变量的字节数是由对应的计算机系统的位数决定的对于16位系统指针是2字节2*8、对于32位系统指针是4字节4*8、对于64位系统指针是8字节8*8。2.2 取地址运算符()取地址运算符用于获取变量的内存地址int num 10; int *p; // 定义整型指针p p num; // 给p赋值num的首位的地址 // 另外的写法 int *p num; printf(num的地址%p\n, num); // 输出num的地址 printf(指针p的值%p\n, p); // 输出指针p存储的地址2.3 解引用运算符(*)解引用运算符用于通过指针访问或修改其指向的值int num 10; int *p num; printf(num的值%d\n, num); // 输出10 printf(*p的值%d\n, *p); // 输出10 *p 20; // 通过指针修改num的值 printf(修改后num的值%d\n, num); // 输出203. 指针的常见用途3.1 动态内存分配指针是实现动态内存分配的关键// 动态分配内存 int *arr (int*)malloc(10 * sizeof(int)); if (arr NULL) { printf(内存分配失败\n); return 1; } // 使用动态数组 for (int i 0; i 10; i) { arr[i] i * 2; } // 释放内存 free(arr); arr NULL; // 避免野指针3.2 函数参数传递通过指针可以实现函数参数的传址调用// 交换两个整数的值 // 先传入xy的地址然后在函数内部进行对xy的值的取值*从而进行交换 void swap(int *a, int *b) { int temp *a; *a *b; *b temp; } int main() { int x 10, y 20; printf(交换前x%d, y%d\n, x, y); // 输出10, 20 swap(x, y); printf(交换后x%d, y%d\n, x, y); // 输出20, 10 return 0; }3.3 数组与指针的关系数组名本质上是一个指向数组首元素的常量指针int arr[5] {1, 2, 3, 4, 5}; // 以下两种访问方式是等价的 printf(arr[2] %d\n, arr[2]); // 数组下标访问 printf(*(arr2) %d\n, *(arr2)); // 指针算术运算4. 指针的高级概念函数指针指向函数的指针用于回调函数等高级编程技巧#include stdio.h int add(int a, int b) { return a b; } int multiply(int a, int b) { return a * b; } int main() { // 1. 正确声明一个函数指针 func_ptr // 这个指针可以指向任何“返回 int 且接收两个 int 参数”的函数 int (*func_ptr)(int, int); // 2. 让指针指向 add 函数 func_ptr add; // 通过函数指针进行调用 printf(10 20 %d\n, func_ptr(10, 20)); // 输出30 // 3. 让指针改指向 multiply 函数 func_ptr multiply; // 再次调用 printf(10 * 20 %d\n, func_ptr(10, 20)); // 输出200 return 0; }
企业数字化 ERP 产品动态
相关推荐
LangGraph开发环境搭建:从下载Python到可视化调试的保姆级教程 很多开发者在接触LangGraph时,最容易在第一步就产生挫败感:Python版本不对、依赖包冲突、API配置报错,甚至不知道如何直观地看到Agent的运行过程。实际上,LangGraph的开发体验远比想象中友好,只要掌握正确的环境搭建方… · 2026/9/20 14:35:21
2026年SEO优化公司选型指南:行业标准、适配场景与主流服务商分析 近年来,国内企业线上获客体系不断成熟,自然搜索流量的长期价值逐步得到行业认可。根据中国广告协会发布的《2025年中国搜索营销发展白皮书》数据显示,国内企业自然搜索流量贡献的转化占比已提升至42%,超过付费搜索流量,… · 2026/9/22 4:52:13
大模型长尾知识问答实战:RAG混合检索与GraphRAG方案 1. 长尾问题为什么总是让大模型“一本正经地胡说”1.1 一个真实场景:冷门型号的引脚定义去年帮一个做硬件的朋友查一颗停产多年的电源管理芯片,型号冷门到在主流搜索引擎上只能翻出两份模糊的扫描版数据手册。我顺手把型号丢给某款通用大模型,… · 2026/9/24 21:32:05
AI测试开发转型指南:从手工测试到Agent评测的核心技能与实操路径 1. 从手工测试到AI测试开发:转型的底层逻辑1.1 为什么测试人现在必须关注AI测试开发这两年跟不少做测试的朋友聊天,发现一个很明显的分化:一部分人还在写Selenium脚本、维护接口自动化用例,每天跟元素定位和断言打交道;… · 2026/9/24 21:32:05
基于Lighthouse和Deepseek的QQ私人AI机器人搭建指南 你有没有过这种时刻:明明手机就在手边,却要先解锁、找浏览器、翻书签,才轮到AI聊天框跟你对话。我现在已经很少开网页版AI了,不是它不好用,而是我发现了一个更顺手的方式——直接在QQ里养一个私人AI,把它当… · 2026/9/24 21:32:05
TeamAI 实战:用 AI Agent 让团队经验自动传承 1. 团队经验为什么会“人一走就断档”几乎每个研发团队都经历过这种场景:某个核心模块只有老王一个人熟,他请假一周,线上出问题没人敢动;新人入职三个月,还在问“这个配置为什么要这么写”;同一个坑&#x… · 2026/9/24 21:32:05
零信任架构实战:基于海宇租凭分期报告构建自动化风控网关 破解租赁审查痛点:从传统人工核查到数据直连
在当今汽车金融与高端设备租赁业务中,对承租人的资信状况进行准确的履约评估是控制风险的核心环节。在构建“汽车金融核心资产租赁合规审查后端”时,传统的线下纸质材料审查往往效率低下ÿ… · 2026/9/24 21:32:05
Spring Boot多端口启动:IDEA中运行多个实例的配置与实践 1. 为什么要让同一个应用跑多个端口——先把场景和原理说透Spring Boot 在 IDEA 中同时启动多个不同端口的实例,这是个挺高频的需求。我自己最早遇到它,是在本机调一个很老的前后端联调项目,前端环境被某个代理占住,后端服务必须同… · 2026/9/24 21:31:59
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44