C语言
文章平均质量分 81
·薯条大王
长远的生活需要清醒
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言内存函数和数据在内存的存储
掌握补码与字节序机制,避免跨平台数据传输错误。:始终确保操作的内存区域在合法范围内。(GCC/Clang):编译时加入。(网络传输、Java虚拟机)处理不确定内存关系的场景。:检测内存泄漏、越界访问。:数据高位字节存于低地址。:数据低位字节存于低地址。与循环初始化的适用场景。(x86/ARM架构)原创 2025-04-07 21:46:58 · 495 阅读 · 0 评论 -
C语言递归
每次递归调用都会在内存栈中创建一个新的函数栈帧,保存当前状态(参数、局部变量、返回地址),直到终止条件触发后逐层回溯。:将问题分解为与原问题结构相同但规模更小的子问题(如树的遍历、分治算法)。:部分编译器(如GCC -O2)可将其优化为循环,避免栈溢出。:通过工具(如Valgrind)检测栈使用情况。:性能敏感、递归深度不可控(如处理用户输入)。:树/图操作、分治策略、数学定义清晰的问题。:如斐波那契数列的重复计算。:用栈数据结构保存递归状态。:适用于尾递归或简单递归。:如八皇后问题、迷宫求解。原创 2025-04-07 21:38:32 · 705 阅读 · 0 评论 -
C语言指针
内存操作:通过地址直接读写内存。类型匹配:指针类型决定解引用和运算行为。安全性:避免野指针和内存泄漏。灵活应用:结合数组、字符串、多级指针实现复杂数据结构。原创 2025-04-04 08:40:10 · 1112 阅读 · 0 评论 -
C语言操作符
对有符号数右移时,高位补符号位(算术右移);无符号数补0(逻辑右移)。通过系统化掌握这些操作符的特性,能够编写更高效、安全的C语言代码。:从左到右依次执行,整个表达式的值为最后一个表达式(:避免在同一个表达式中对同一变量多次修改(如。完全不同,前者是位运算,后者是逻辑判断。会跳过不必要的计算,可用于条件保护(如。原创 2025-04-04 08:05:19 · 943 阅读 · 0 评论 -
C语言函数
形参作为独立内存空间,接收实参值的拷贝。函数内对形参的修改不会影响实参。传递数组首地址或指针时,形参通过地址直接操作原始数据。不可返回局部变量的地址(函数结束内存释放)原因:未实现声明过的函数/链接时缺少目标文件。场景:递归深度过大或局部数组尺寸超标。优点:代码简洁,适合树形结构问题。缺点:栈空间消耗大,时间复杂度高。:返回值存储于临时寄存器或栈空间。解决方案:改用动态内存或迭代算法。合理选择值传递/地址传递策略。构建可维护的模块化代码结构。:回调函数、策略模式。原创 2025-04-02 22:36:39 · 504 阅读 · 0 评论 -
C语言数组知识点
通过掌握数组的内存布局、指针关系及动态管理,可高效处理批量数据,同时避免常见陷阱。:C语言不检查数组边界,越界访问可能导致程序崩溃或数据污染。静态数组(编译时确定大小) vs 动态数组(运行时分配):二维数组本质是一维数组的嵌套,内存按行连续分配。:数组长度在运行时确定(部分编译器可能不支持)。一维数组(线性访问) vs 多维数组(嵌套结构)的集合,通过连续内存存储,支持高效访问。:数组名退化为指针,需额外传递长度信息。:返回指向整个数组的指针(类型为。:返回整个数组的字节大小(如。原创 2025-04-02 22:28:50 · 616 阅读 · 0 评论
分享