| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言笔记 -> 正文阅读 |
|
[C++知识库]C语言笔记 |
复习: 1、函数传递 ? ? 值传递:普通变量,实参与形参单向值传递,函数之间不能共享同名变量 ? ? 址传递:数组,函数之间可以共享同一个数组,数组长度会丢失,需要额外增加一个参数传递数组的长度 ? ? 返回值:return语句不是把数据直接传递给调用者,而是放入到都能访问的一个公共区域内,如果没有return语句,那么该区域的就是一个不确定的垃圾值 2、进程映像 ? ? 程序:存储在磁盘上的可执行文件(二进制、脚本) ? ? 进程:系统中正在运行的程序,数据加载到内存运行 ? ? 进程映像:进程内存的分布情况 ? ? text ?代码段 ? ? ? ?二进制指令、常量、被const修饰过的初始化过的全局变量、静态局部变量 只读 强制修改产生段错误 ? ? data ?数据段 ? ? ? ?初始化过的全局变量、静态局部变量 ? ? bss ? 静态数据段 ? ?未初始化过的全局变量、静态局部变量 该段内存在进程运行前会自动清理为0 ? ? heap ?堆 ? ? ? ? ? ?由程序员手动管理,使用麻烦,足够大 ? ? stack 栈 ? ? ? ? ? ?局部、块变量,由系统自动申请、释放内存,使用简单,小 ? ? 变量的分类: ? ? 存储位置、生命周期、作用范围 ? ? ? ? 全局变量:定义在函数外的变量 ? ? ? ? ? ? data\bss ? ? ? ? ? ? 程序开始到程序结束位置 ? ? ? ? ? ? 整个程序任意位置 ? ? ? ? 局部变量:定义在函数内的变量 ? ? ? ? ? ? stack ? ? ? ? ? ? 函数开始到函数结束 ? ? ? ? ? ? 函数内使用 ? ? ? ? 块变量: ?定义在语句块内变量 ? ? ? ? ? ? stack ? ? ? ? ? ? 函数开始到函数结束 ? ? ? ? ? ? 语句块(if\for\while)内使用 ? ? ? ? 注意:局部变量会屏蔽同名的全局变量,块变量会屏蔽同名的局部变量和全局变量 ? ? ? ? ? ? 全局变量建议首字母大写,局部、块全部小写 3、类型限定符 ? ? auto ? ? ? ?定义自动申请、释放内存的变量,不加就代表了加 ? ? extern ? ? ?声明变量,a.c中的全局变量想要被b.c使用,在使用前通过extern 类型名 变量名;方式声明才能通过编译,如果a.c中没定义,链接时依然会报错 ? ? static ? ? ? ? ? ? ? 改变存储位置 ? ? ? ? ? ? 局部变量,由stack改为data\bss ? ? ? ? 延长生命周期 ? ? ? ? ? ? 局部变量,函数结束后不会被销毁,直到程序结束 ? ? ? ? ? ? static int num =10; ? ? ? ? 限制作用范围 ? ? ? ? ? ? 全局变量、函数,只能在本文件内使用 ? ? const ? ? ? ? “保护”变量的值不被显示地修改 ? ? ? ? const 修饰初始化过的全局变量、静态局部变量,变成了常量,强制修改会段错误 ? ? register ? ? ? ? 申请把变量从内存移到寄存器中存储,不一定能申请成功 ? ? volatile ? ? ? ? 被修饰的变量不进行取值优化 ? ? ? ? volatile int num; ? ? ? ? if(num == num) ? ? typedef ? ? ? ? 类型重定义 ? ? ? ? typedef int num; ? ? ? ? num a; ?//num就相当于int的新的类型名 小项目:五子棋 ? ? 需要的数据: ? ? ? ? 1、定义字符数组棋盘 15*15 ? ? ? ? 2、定义变量用于记录落子的位置 ? ? ? ? 3、定义一个变量来记录棋子角色 ? 黑棋'@' 白棋'$' ? ? 业务逻辑: ? ? ? ? 定义需要数据 ? ? ? ? 是否需要对数据进行初始化 ? ? ? ? for(;;) ? ? ? ? { ? ? ? ? ? ? 1、清理屏幕、显示棋盘 ? ? ? ? ? ? 2、落子 ? ? ? ? ? ? ? ? 坐标要合法、该位置不能有棋子 ? ? ? ? ? ? ? ? 否则继续重新落子 ? ? ? ? ? ? 3、检查是否五子连珠 ? ? ? ? ? ? ? ? 是,结束游戏 ? ? ? ? ? ? 4、交换角色 ? ? ? ? } |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 17:14:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |