C语言字符串与指针易错点复盘
前言在C语言学习过程中 sizeof 、 strlen 、数组名、指针的区分是高频易错点也是看懂内存布局的关键基础。本篇整理学习笔记厘清字符串数组、字符指针、标准库字符串函数的坑点。一、 sizeof 和 strlen 核心区别1. sizeof 运算符计算占用内存字节数- 数组名传给 sizeof sizeof(arr) 得到整个数组总字节大小- arr0 、 arr 单独参与表达式退化为首元素地址- arr 是整个数组的地址地址数值和数组首地址一样但类型是数组指针重点只要不是直接写 sizeof(数组名) 数组名都会退化为首元素指针。2. strlen() 库函数统计有效字符长度遇到 \0 停止计数不包含末尾结束符 \0 **致命坑strlen(*arr) 直接传字符值不是字符串起始地址程序直接崩溃。strlen只接收字符串首地址作为参数。示例对比cchar arr[] abcdef;// sizeofsizeof(arr); //76个字符 \0sizeof(arr0); //指针大小64位系统8字节sizeof(*arr); //*arr等价arr[0]单个char占1字节sizeof(arr); //数组地址指针大小8字节// strlenstrlen(arr); //6strlen(arr); //可以运行地址数值一致长度6strlen(arr1); //跳到数组后面的内存随机值野内存strlen(arr[0]1);//从下标1开始结果5char指针形式字符串cchar *p abcdef;strlen(p); //6strlen(p1); //5// strlen(*p); //崩溃*p是字符a不是地址sizeof(p); //指针大小8字节不是字符串长度sizeof(*p); //1小结数组内存连续存着 a b c d e f \0 指针pp变量保存字符串常量的首地址字符串常量放在只读内存。二、二维数组 sizeof 快速计算cint arr[3][4] {0};sizeof(arr); //3*4*4 48sizeof(arr[0][0]); //单个int占4sizeof(arr[0]1); //arr[0]退化成指针8字节sizeof(*(arr1)); //arr1是第二行数组地址解引用一行数组4*416sizeof(arr[0]1); //地址8字节sizeof(*(*(arr1)));//取到int值4字节三、字符串处理函数string.h1. strcmp(str1,str2)按ASCII逐字符比较- str1 str2 返回 -1- 相等返回 0- str1 str2 返回 12. strncpy(dst, src, n)拷贝n个字符不会自动补 \0 容易出现字符串没有结束符后续访问乱码。工程规范尽量少用不安全的 strcpy 优先带长度限制版本。3. strncat追加字符串最多追加n个字符追加结束后自动补上 \0 终止符。4. strncmp 指定比较前n个字符。5. strstr(str1,str2) 在str1查找str2第一次出现的位置返回对应指针。6. strtok 字符串分割函数会直接修改原字符串内部保存静态指针多次分割传 NULL 不能用于字符串常量。7. strerror(errno) 根据错误码打印错误描述。四、踩坑总结1. 分清**数组本身、数组首元素地址、数组指针 arr **三者类型差异2. strlen 参数必须是字符串起始地址不能传入单个字符3. 字符串常量 char *pxxx 存放在只读段不要尝试修改4. strcpy 无长度检查容易缓冲区溢出工程代码优先使用带长度限制函数5. strtok 有静态变量记忆位置多线程不安全不要在循环嵌套分割。https://gitcode.com/gcw_RyL6LF93/study‑c‑languague.git

相关新闻

PXRD疑难解析:MicroED技术如何精准鉴别药物混合晶型

PXRD疑难解析:MicroED技术如何精准鉴别药物混合晶型

1. 项目概述:当PXRD遇到“疑难杂症”在仿制药研发与质量控制领域,粉末X射线衍射(PXRD)是鉴定药物晶型的“金标准”工具,几乎每个实验室的研发人员都对其又爱又恨。爱的是它的普适性和标准化,恨的是它有时会…

2026/8/2 1:39:23 阅读更多 →
好股票,藏在你心底的那份踏实

好股票,藏在你心底的那份踏实

人机协作,仅供参考买股票,买的不只是数字跳动,更是一份托付。每当股价起伏,我们真正渴望的,无非是夜里能安睡、清晨敢加仓的底气。那份底气,就藏在三个朴素的标准里。第一,它常年做有利股东的事…

2026/8/2 1:38:23 阅读更多 →
Python 科学计算与高性能编程:基于 NumPy 矢量化与 Numba JIT 的算子加速实战

Python 科学计算与高性能编程:基于 NumPy 矢量化与 Numba JIT 的算子加速实战

Python 科学计算与高性能编程:基于 NumPy 矢量化与 Numba JIT 的算子加速实战 在 AI 实验室进行算法原型开发、数据清洗或编写自定义损失函数(Custom Loss)时,我们经常听到同行吐槽:“Python 这门语言太慢了&#xff…

2026/8/2 1:38:23 阅读更多 →

最新新闻

从地址到自由:C语言指针核心概念深度复盘与实战指南

从地址到自由:C语言指针核心概念深度复盘与实战指南

指针基础:从地址到自由 —— C 指针核心概念复盘 1. 一句话总结 指针不是魔法,它就是一个存地址的变量 —— 但当你真正理解指针的步长、类型约束和内存模型后,你就能用同一个地址玩出完全不同的花样。2. 知识地图 指针基础 ├── 指针是什么…

2026/8/2 2:56:35 阅读更多 →
北大图灵班启示录:顶尖计算机人才如何构建代码之外的“元能力”

北大图灵班启示录:顶尖计算机人才如何构建代码之外的“元能力”

1. 从“代码”到“图灵”:一个更宏大的命题“北大图灵班”,这个名字在计算机领域的圈子里,几乎等同于“天才”与“顶尖”的代名词。很多人,包括我自己在接触这个项目之前,第一反应都是:这大概是一个聚集了全…

2026/8/2 2:56:35 阅读更多 →
如何轻松下载B站视频?BilibiliDown跨平台下载器完整教程

如何轻松下载B站视频?BilibiliDown跨平台下载器完整教程

如何轻松下载B站视频?BilibiliDown跨平台下载器完整教程 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors…

2026/8/2 2:56:35 阅读更多 →
突破性3D打印键帽方案:专业级Cherry MX模型实战指南

突破性3D打印键帽方案:专业级Cherry MX模型实战指南

突破性3D打印键帽方案:专业级Cherry MX模型实战指南 【免费下载链接】cherry-mx-keycaps 3D models of Chery MX keycaps 项目地址: https://gitcode.com/gh_mirrors/ch/cherry-mx-keycaps 你是否厌倦了机械键盘键帽千篇一律的外观?是否想要打造独…

2026/8/2 2:56:35 阅读更多 →
Go html/template 使用入门

Go html/template 使用入门

Go html/template 使用入门 用 html/template 把 HTML 文件 Go 数据 → 渲染成完整 HTML&#xff0c;并自动防 XSS。 一、模板是干嘛的 直接拼字符串&#xff1a; html : "<p>你好 " name "&#xff0c;验证码是 " code "</p>&quo…

2026/8/2 2:56:35 阅读更多 →
VSCode与PyCharm中Python库安装:从虚拟环境到依赖管理的工程实践

VSCode与PyCharm中Python库安装:从虚拟环境到依赖管理的工程实践

1. 为什么IDE安装库比pip install更值得深究&#xff1f;刚接触Python那会儿&#xff0c;我总觉得在终端里敲pip install requests就是安装第三方库的全部。直到后来&#xff0c;在团队协作、项目迁移、环境隔离这些真实场景里&#xff0c;我才发现事情远没这么简单。尤其是在使…

2026/8/2 2:55:35 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流&#xff1a;一个核心问题的诞生想象一下&#xff0c;你是一个城市供水系统的总工程师。你的城市有多个水源&#xff08;水库&#xff09;&#xff0c;需要通过一个复杂的地下管道网络&#xff0c;将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起&#xff1a;为什么我们需要互相关几年前&#xff0c;我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号&#xff0c;理论上它们接收到的声音波形应该非常相似&#xff0c;只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流&#xff1a;一个核心问题的诞生想象一下&#xff0c;你是一个城市供水系统的总工程师。你的城市有多个水源&#xff08;水库&#xff09;&#xff0c;需要通过一个复杂的地下管道网络&#xff0c;将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起&#xff1a;为什么我们需要互相关几年前&#xff0c;我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号&#xff0c;理论上它们接收到的声音波形应该非常相似&#xff0c;只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

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

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

免费解锁百度网盘SVIP加速&#xff1a;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指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

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

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

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

2026/8/2 0:23:22 阅读更多 →