news 2026/8/9 10:52:48

C语言学习周记:第二周 指针与函数小结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言学习周记:第二周 指针与函数小结

C语言学习周记:第二周 指针与函数小结
这周终于碰上了C语言的核心——指针。从内存地址开始,一路干到指针、函数、内存管理和字符串处理。上周是“会写代码”,这周开始“看懂代码在跟内存干啥”。
重点知识点

  1. 指针就是存地址的变量
    每个字节都有编号,&拿地址,*通过地址取数据。指针大小看系统:32位4字节,64位8字节,跟指向啥类型没关系。最坑的是野指针:定义完不初始化直接解引用,必崩。记住:指针要么指向合法内存,要么给NULL。
  2. 数组名≈首元素地址
    a[i]其实就是*(a+i),下标是指针运算的语法糖。但sizeof(数组名)和&数组名两个特例要注意,这时候数组名代表整个数组。二维数组用指针遍历时,p+1跳一行还是一个元素取决于指针类型,不确定就加括号。
  3. 函数就是拆代码
    形参是占位符,实参是具体值,各占各的内存。C语言按值传递,想改外部变量就得传指针。递归就是函数调自己,必须有退出条件不然栈溢出。阶乘和斐波那契是经典练习。
  4. 内存分栈和堆
    局部变量在栈上,函数结束自动回收。全局和static在数据段,程序退出才释放。堆归你管,malloc申请free释放,必须配对。忘了free小程序没事,大项目慢慢炸。
  5. 字符串就是字符数组
    以\0结尾。strcpy/strncpy复制,strcat/strncat拼接,strcmp/strncmp比较,strstr找子串,strtok分割。带n的有边界控制更安全,不带的容易缓冲区溢出。sizeof算整个内存大小(含\0),strlen数字符个数(不含\0),别搞混。
    心得
    这周最大的变化:开始用“地址”和“内存布局”的角度看代码了。以前只关心“值是多少”,现在会想“这变量放哪、谁指着它、啥时候释放”。老师说指针是C语言的精髓,这周我真信了。
    递归像俄罗斯套娃,一层层进一层层出。但老师提醒别为了优雅使劲递归,层次太深栈撑不住,很多场景用循环就行。
    踩过的坑
    野指针:int *p; 不初始化直接 *p = 10;,秒崩。解决:定义时就初始化,int *p = NULL;。
    返回局部变量地址:函数里定义个局部数组,return它的地址,外面拿到的是废数据——栈已经被回收了。解决:用static或者malloc。
    strcpy缓冲区溢出:目标数组10字节,拷了个20字节的字符串进去,越界覆盖了隔壁内存,查了半天才解决问题。解决:用strncpy限制长度。
    总结
    指针、函数、内存管理是C语言的真·门槛。数组是指针的马甲,函数是模块化基础,内存管理决定程序稳不稳。这周信息量爆炸,但多画内存图、多调试,慢慢就通了。下周继续干指针进阶。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/9 10:51:06

Kubernetes Namespace与CGroup:资源隔离与限制机制详解

1. 理解Kubernetes Namespace与容器CGroup的本质区别 在Kubernetes集群管理实践中,Namespace和CGroup是两种完全不同的资源隔离机制。很多刚接触容器技术的工程师容易混淆这两者的概念,今天我就结合自己多年容器化部署的经验,带大家彻底搞懂它…

作者头像 李华
网站建设 2026/8/9 10:49:25

RPG Maker MV/MZ解密工具完整指南:解锁游戏资源的终极方案

RPG Maker MV/MZ解密工具完整指南:解锁游戏资源的终极方案 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://git…

作者头像 李华
网站建设 2026/8/9 10:49:05

命令行AI工作流:grep与Claude管道化日志分析与自动化实践

1. 从“管道”到“并肩作战”:一个被低估的效率革命如果你在终端里敲命令,还在用claude | grep这种“一锤子买卖”的方式,那你可能错过了命令行效率提升的黄金时代。我见过太多工程师,包括几年前的我自己,把grep当成一…

作者头像 李华
网站建设 2026/8/9 10:48:50

华为BLM模型:从战略到执行

做战略卡壳、执行脱节的宝子看过来!华为这套从战略到执行的方法论,直接把 “虚战略” 变 “实动作”💥 核心 3 步直接抄: ✅战略三问破局:先搞懂 “我是谁(现状差距)、去哪(目标取舍…

作者头像 李华
网站建设 2026/8/9 10:48:35

抖音下载器完整指南:3分钟学会无水印视频批量保存

抖音下载器完整指南:3分钟学会无水印视频批量保存 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …

作者头像 李华
网站建设 2026/8/9 10:47:57

解决VMware Win10虚拟机启动黑屏问题的技术方案

1. 问题现象与背景分析最近在Win11宿主机上使用VMware Workstation运行Win10虚拟机的用户频繁报告一个奇怪现象:虚拟机在启动过程中会偶发性出现黑屏状态,但通过挂起(Suspend)再恢复操作后,系统又能正常显示。这个问题看似不影响最终使用&…

作者头像 李华