c语言 第八章:内存管理、位运算

发布时间:2026/10/13 11:17:03

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位运算符的优先级~大于 大于大于^大于|
延伸阅读

更多相关文章

2026/10/12 6:39:52

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

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

2026/10/11 15:12:05

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

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

2026/10/12 11:00:30

从FP6277看智能养生硬件:高效升压芯片如何优化艾灸盒性能?

近年来,随着健康消费的升级,便携式智能艾灸盒凭借“小巧便携、精准控温、安全易用”的特点,迅速成为小红书、抖音等平台的爆款单品。从职场白领到宝妈群体,用户对其需求已从“功能性”转向“体验感”——既要能塞进口袋随身携带&a…

2026/10/13 11:16:07

用联想记忆网络为量化模型注入可解释的市场记忆

我做量化研究这几年,最常被非业内朋友问的一个问题是:市场到底有没有记忆?很多教科书模型把价格当成随机游走,恨不得告诉你“过去不重要”。但在实盘里蹲久了,你一定会遇到那种“似曾相识”的走势:同样的形…

2026/10/13 11:16:07

用UTF-8彻底搞懂编码与乱码:从字节原理到项目排查实战

做技术这些年,我处理过的乱码问题少说也有几十次,从网页上突然冒出来的“锟斤拷”,到数据库里整片整片的问号,最后追根溯源,十有八九都绕不开“UTF-8”这三个字。UTF-8这套编码系统,几乎每个开发者每天都在…

2026/10/13 11:16:07

C#与OpenCvSharp移动物体识别追踪实战:检测、追踪与避坑指南

简介:这是一份基于C#与OpenCVSharp实现的移动物体识别追踪完整源码实例,适合有基础C#认知、希望入门计算机视觉或需要实际项目参考的开发者。实例覆盖背景建模、运动目标检测、轮廓提取与TrackerCSRT/KCF追踪等核心环节,并配有可直接运行的工…

2026/10/13 11:16:07

极简生活美学:打造清欢生活的五个维度

1. 生活美学的本质探索"心有清欢"这个说法最早可以追溯到苏轼《浣溪沙》中的名句"人间有味是清欢",描绘的是一种淡泊宁静的生活态度。在现代语境下,它代表着一种不追求物质堆砌、注重精神愉悦的生活方式。这种生活哲学与当下盛行的&…

2026/10/13 11:11:07

用Python挖掘利率与汇率背后的宏观风险信号

利率和汇率,是宏观金融分析里绕不开的两个变量。我刚开始做固收研究那阵子,带我的前辈提过一句:搞懂利率,你才能看懂债券市场的定价逻辑;搞懂汇率,你才能想明白资金在跨市场之间为什么这样流动。这话糙&…

2026/10/13 5:19:27

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/12 12:01:26

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/12 12:54:07

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/13 0:04:41

基于Triton部署YOLO目标检测:从训练脚本到线上服务

简介:这份资源面向希望将目标检测模型落地到生产环境的深度学习开发者与算法工程师,聚焦于用 Triton Inference Server 部署 YOLOv9 的完整实战方案,解决从训练权重到线上推理服务之间的工程化难题。压缩包共 16 个文件,约 886KB&…

2026/10/13 0:04:41

手把手教你云端部署Qwen-Image-2.1:从GPU选型到在线文生图服务

Qwen-Image-2.1 这个开源的图像生成模型,最近在内容创作和 AI 应用圈子里热度相当高。它属于通义 Qwen 系列里的视觉生成分支,让我眼前一亮的是它对中文长文本的理解能力——以前用那些老方案生成带中文文字的图,十个里九个是“乱码印刷体”&…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑