C语言核心知识点详解:const指针、野指针、assert断言与传值/传址
一、const 与指针权限控制的核心逻辑核心原则const 靠近谁就限制谁的修改权限共三种核心场景覆盖所有实用需求。常量指针const 修饰指向的内容规则指针 p 的指向可修改能指向其他变量但 不能通过 *p 修改指向的内容指向的内存只读。代码示例实用场景函数参数传递如 void printArr(const int *arr, int len) 防止函数意外篡改数组内容。指针常量const 修饰指针本身规则指针 p 的指向 不可修改指针本身是常量但可通过 *p 修改指向的内容。代码示例避坑点定义时必须初始化否则编译报错常量指针不可悬空。双重const同时修饰指针与内容规则指针 p 的指向不可改且通过 *p 指向的内容也不可改双重只读。代码示例适用场景保护核心数据如硬件地址、全局配置参数防止误改指向或内容。二、野指针成因与彻底规避方案野指针是指向「非法内存地址」的指针会导致程序崩溃、内存污染等问题必须从源头规避。野指针的三大成因指针未初始化定义后未赋值指向随机内存指针越界访问数组、缓冲区访问超出范围内存释放后未置空 free 或函数返回后指针仍指向已释放的内存。规避野指针的四大技巧定义即初始化默认赋 NULL 空指针指向地址0不可访问内存释放后置 NULL free§ 后立即 p NULL 用 assert 或条件判断检查指针有效性避免指针越界严格控制数组、缓冲区的访问范围。代码示例正确用法三、assert 断言调试阶段的「安全检查工具」assert 是 C 语言标准库提供的调试工具用于检查程序运行时的条件是否成立不满足则直接终止程序并输出错误信息。核心用法特性仅在「调试模式」生效Release 模式下会被编译器优化移除不影响生产环境性能。代码示例配合指针检查避坑点 assert 不能替代运行时条件判断如用户输入校验仅用于调试阶段的逻辑自检。四、传值调用 vs 传址调用函数参数传递的核心差异函数参数传递的本质是「数据拷贝」两种调用方式决定了是否能修改实参的值。传值调用值传递原理将实参的值拷贝给形参形参是独立变量函数内修改形参不会影响实参。代码示例无法修改实参适用场景仅需使用实参的值无需修改如求两数之和、打印数据。传址调用地址传递原理将实参的内存地址拷贝给形参指针变量函数内通过指针访问并修改实参的内存直接影响实参。代码示例可修改实参核心区别传值传「数据副本」传址传「数据地址」需修改实参用传址仅读用传值。核心总结const 管权限靠近内容则内容只读靠近指针则指针只读野指针要杜绝定义赋NULL、释放置NULL、访问先检查assert 善用调试阶段查逻辑Release 模式自动失效调用选对改实参用传址不修改用传值。

相关新闻

LoopBack 4 认证动作(Authentication Action)实战:为自定义 Sequence 接入 authenticate 动作并保护 REST 端点

LoopBack 4 认证动作(Authentication Action)实战:为自定义 Sequence 接入 authenticate 动作并保护 REST 端点

后端微服务 【免费下载链接】loopback-next LoopBack makes it easy to build modern API applications that require complex integrations. 项目地址: https://gitcode.com/gh_mirrors/lo/loopback-next 点击查看 免费下载 本文聚焦 LoopBack 4 认证体系中最核心…

2026/10/13 6:19:45 阅读更多 →
C 语言内存函数超清晰总结(memcpy、memmove、memcmp、memset)

C 语言内存函数超清晰总结(memcpy、memmove、memcmp、memset)

前言: C 语言中, strcpy / strcmp 等字符串函数只能处理字符串。 想要通用拷贝任意类型数组、结构体,就要用内存操作函数:按字节操作,不关心数据类型。 本文一次性讲清 4 个常用内存函数:用法 区别 模拟…

2026/10/13 6:19:45 阅读更多 →
数据库课程设计实战:图书管理系统建表与借还书SQL全解析

数据库课程设计实战:图书管理系统建表与借还书SQL全解析

简介:这份数据库课程设计报告面向高校计算机相关专业学生,尤其是正在完成数据库课程设计或需要撰写实验报告的学习者。报告以图书管理系统为案例,完整呈现从开发背景、需求分析到物理设计与实施的全过程,帮助读者理解如何将数据库…

2026/10/13 6:19:45 阅读更多 →

最新新闻

学习 Python 基础语法与工程环境操作流程

学习 Python 基础语法与工程环境操作流程

前言一、基础概念虚拟环境:可以理解成每个项目专属的「Python 独立工具箱」。每个项目单独一套 Python 解释器和第三方安装包,项目之间互不干扰,不会出现 A 项目装的包覆盖 B 项目依赖的情况,删掉环境文件夹就能一键重置&#xff…

2026/10/13 6:59:55 阅读更多 →
陈,读懂生理药理实验多用仪

陈,读懂生理药理实验多用仪

生理药理刺激多用仪属于多功能综合性实验设备,依托数字集成电路对振荡频率分频处理,输出多种标准频率与时间信号。设备可输出前沿陡直、平顶稳定的标准矩形刺激波,波宽与输出电压连续可调,支持单次、双次、定时、连续等多种刺激输…

2026/10/13 6:59:55 阅读更多 →
MCP基本使用

MCP基本使用

MCP版本用日期定义,最早的正式版本2024-11-05,截止当前最新的是2026-07-28(这一版协议有根本性改动,Python SDK需要使用 v2)。下面的概念是针对 2024-11-05 版的,2026-07-28 变成无状态协议了,下…

2026/10/13 6:59:55 阅读更多 →
企业微信 AI 客服答不准怎么办?兜底话术与置信度阈值

企业微信 AI 客服答不准怎么办?兜底话术与置信度阈值

客户问的是一款产品的偏门参数,AI 一本正经地答错了。这种错比不回复更伤:客户按错信息做了决定,回头算在品牌头上。答不准通常不是模型变笨,而是两件事没配好——该兜底的时候它硬答,该收进知识库的问题它够不着。## …

2026/10/13 6:59:55 阅读更多 →
恶意代码概述

恶意代码概述

1. 计算机病毒(Virus)核心特点:必须依附文件,需要人为触发,不能自己网上传播 原理:寄生在正常文件里(exe / 文档)。必须用户手动打开这个带毒文件,病毒才会激活&#xff…

2026/10/13 6:59:55 阅读更多 →
恶意代码检测毕设实战:PE特征提取与机器学习模型训练

恶意代码检测毕设实战:PE特征提取与机器学习模型训练

简介:这份资源是一套基于机器学习的恶意代码检测项目源码,面向计算机、人工智能、通信工程、自动化等专业的在校学生与教师,也适合作为毕设、课程设计或项目立项演示的参考。项目围绕恶意代码的特征提取、向量化与模型训练展开,涵…

2026/10/13 6:58:55 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →