C语言学习笔记04
变量运算规则
自动转换(隐式转换):系统自动变
强制转换(显式转换):你用 (类型) 命令它硬变
default = 剩下所有没写的情况(分支)
default子句是可选的。同时,位置也是灵活的。当没有匹配的case时,执行default语句。
case穿透:
执行完此case的执行语句以后,
情况1:如果遇到break,则执行break并跳出当前的switch-case结构
情况2:如果没有遇到break,则会继续执行当前case之后的其它case中的执行语句。--->case穿透...直到遇到break关键字或执行完所有的case及default的执行语句,跳出当前的switch-case结构.
获取三位数的个位,十位,百位
1. 取个位
用 % 对 10取模,就能得到最后一位
个位 = n % 10;
// 例:123 % 10 = 3
2. 取十位
先除以 10,把个位 “砍掉”,再对 10 取余
十位 = (n / 10) % 10;
// 例:123 / 10 = 12,12 % 10 = 2
3.取百位
n / 100;
// 例:123 / 100 = 1
百位 = n / 100;
// 例:123 / 100 = 1
C语言中堆与栈是什么意思?
| 特性 | 栈 Stack | 堆 Heap |
|---|---|---|
| 管理者 | 系统自动 | 程序员手动 |
| 分配 | 自动创建 | malloc 手动 |
| 释放 | 函数结束自动销毁 | 必须 free |
| 空间大小 | 小 | 大 |
| 生命周期 | 随函数 | 全程直到 free |
| 泄漏问题 | 不会泄漏 | 容易内存泄漏 |
一句话终极理解
栈:酒店房间
进去自动分配,退房自动清空,不用你管。
堆:租房
自己签约 (malloc),不住必须自己退租 (free),
不退就一直占用 = 内存泄漏。
内存泄漏
内存程序一直占着,不用也不还,就是内存泄漏
浙公网安备 33010602011771号