c语言 第八章:内存管理、位运算
1.操作系统内存管理①内存分布②堆和栈的区别栈区1. 栈区用来保存局部变量、函数的形参返回值、及函数调用时的保护现场2.栈区由操作系统自动管理3.栈区默认大小为8M 比堆区空间小4.栈的访问效率要比堆的访问效率高堆区1.堆区由开发人员手动申请和释放使用完时及时释放否则造成内存泄露。2.堆区空间比栈空间大访问效率相对较低。③堆区空间使用场景在函数中开辟的空间希望随着函数结束该空间任然存在可以去堆上开辟。当需要的空间比较大时可以去堆上开辟栈区空间有限默认8M。堆区空间使用动态内存分配void *malloc(size_t size);功能向堆区申请内存空间参数size申请的空间字节数返回值成功返回申请到的空间首地址失败NULLvoid free(void *ptr);功能释放申请的堆区空间参数ptr申请到的堆区的空间首地址。void *calloc(size_t nmemb, size_t size);功能向堆区申请数组空间并清空成0参数nmemb申请的数组的元素个数size数组中的每个元素占的字节数返回值成功返回申请到的空间首地址失败NULL内存泄露程序运行过程中堆区申请的空间在使用完没有释放则造成内存泄露。避免内存泄露堆区申请的空间使用完及时使用free()进行释放。动态数组int *pa malloc(ARRAY_LEN*sizeof(int));if (NULL pa){printf(malloc error\n);return 0;}for (int i 0; i ARRAY_LEN; i){pa[i] i;}for (int i 0; i ARRAY_LEN; i){printf(%d , pa[i]);}printf(\n);2.位运算①位运算基础按位与 全1为1有0则0|按位或 有1则1全0为0^按位异或 相同为0相异为1~按位取反1取反为00取反为1按位左移 按位左移低位补0 num n num * 2^n按位右移 按位右移动有符号数高位补符号位无符号数高位补0num n num / 2^n9 60000 0000 0000 0000 0000 0000 0000 1001 0000 0000 0000 0000 0000 0000 0000 01100000 0000 0000 0000 0000 0000 0000 00009 | 60000 0000 0000 0000 0000 0000 0000 1001 |0000 0000 0000 0000 0000 0000 0000 01100000 0000 0000 0000 0000 0000 0000 11119 ^ 60000 0000 0000 0000 0000 0000 0000 1001 ^0000 0000 0000 0000 0000 0000 0000 01100000 0000 0000 0000 0000 0000 0000 1111~9~0000 0000 0000 0000 0000 0000 0000 10011111 1111 1111 1111 1111 1111 1111 01109 30000 0000 0000 0000 0000 0000 0000 1001 30000 0000 0000 0000 0000 0000 0100 10009 30000 0000 0000 0000 0000 0000 0000 1001 30000 0000 0000 0000 0000 0000 0000 0001②位运算的使用a.指定n位置10000 0000--》0000 10000000 0001 30000 10001010 0000 |0000 10001010 1000num num | 1 n;1010 0001 | 0000 0001 60100 00001110 0001b.指定第n位清01010 1010 ~(1 3)1111 01111010 00101111 0111 ~0000 1000 ~(1 3)num num ~1 n;0011 1100 1010 1010 ~(1 10) ~(1 11)1111 1011 1111 11110011 1000 1010 10101111 0111 1111 11110011 0000 1010 10100000 0100 0000 00001111 1011 1111 1111c.两数交换(不使用中间变量)方法一位运算无中间变量a a ^ b;b a ^ b;a a ^ b;》a ^ a 0a ^ 0 ab (a ^ b) ^ b a ^ b ^ b a ^ (b ^ b) a ^ 0 a;a a ^ b a ^ b ^ a 0 ^ b b;方法二有中间变量int tmp 0;tmp a;a b;b tmp;方法三求和方式无中间变量a a b;b a - b; a b -b aa a - b; a b - b a b - a位运算符的优先级~大于 大于大于^大于|

相关新闻

基于Transformer的金融时序预测与资产配置Token生成框架实践

基于Transformer的金融时序预测与资产配置Token生成框架实践

这次我们来看一个将金融数值预测与资产配置任务转化为“Token生成”问题的开源项目。项目标题“Financial Numerical Prediction and Allocation as Token Generation”直指其核心思路:它不再将股票价格预测或ETF组合构建视为传统的回归或优化问题,而是将…

2026/10/12 23:38:13 阅读更多 →
深入解析Linux开机启动流程:从固件到systemd的完整指南

深入解析Linux开机启动流程:从固件到systemd的完整指南

1. 项目概述:为什么开机流程值得深挖“Linux开机启动流程有一这篇就够啦!!!”——这个标题背后,是无数运维工程师、系统管理员乃至开发者都曾经历过的困惑时刻。系统启动不起来,屏幕上一串串滚动的日志让人…

2026/10/11 23:07:37 阅读更多 →
从零构建终端AI编程助手:基于大语言模型的Coding Agent实现

从零构建终端AI编程助手:基于大语言模型的Coding Agent实现

1. 项目概述:为什么要在终端里“手搓”一个Coding Agent? 如果你是一个重度命令行用户,每天花在终端里的时间比在图形界面里还多,那你可能和我有一样的“执念”:为什么所有酷炫的AI编程助手,比如GitHub Co…

2026/10/12 12:23:04 阅读更多 →

最新新闻

ESP32舵机控制全攻略:从PWM基础到多路同步与物联网实战

ESP32舵机控制全攻略:从PWM基础到多路同步与物联网实战

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

2026/10/13 1:19:02 阅读更多 →
通讯时断时续排查:接线正常后,物理层与供电层隐性故障诊断

通讯时断时续排查:接线正常后,物理层与供电层隐性故障诊断

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

2026/10/13 1:19:02 阅读更多 →
Linux与Windows服务器间XML文件共享数据交换方案

Linux与Windows服务器间XML文件共享数据交换方案

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

2026/10/13 1:19:02 阅读更多 →
TOTP双因素认证原理与实战:从算法到工程落地

TOTP双因素认证原理与实战:从算法到工程落地

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

2026/10/13 1:19:02 阅读更多 →
C++高性能Point类设计:值语义、浮点容差与STL友好实践

C++高性能Point类设计:值语义、浮点容差与STL友好实践

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

2026/10/13 1:19:02 阅读更多 →
微信小程序自定义导航栏完整指南:高度计算与组件封装

微信小程序自定义导航栏完整指南:高度计算与组件封装

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

2026/10/13 1:18:01 阅读更多 →

日新闻

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

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

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

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/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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 阅读更多 →