logo资料库

王桂林零基础入门C语言(全).pdf

第1页 / 共293页
第2页 / 共293页
第3页 / 共293页
第4页 / 共293页
第5页 / 共293页
第6页 / 共293页
第7页 / 共293页
第8页 / 共293页
资料共293页,剩余部分请下载后查看
Hello World
源程序
C语言版
C++版
hello word collection
注释
从源程序到可执行程序
集成开发环境:
手动编译:
致敬大师
Linux 常用基础命令
版本选择
内核版本
发行版本
目录结构
系统目录
分区与目录
常用命令
命令格式
目录切换
文件操作
用户管理
网络命令
Ubuntu下软件安装
vim文本编辑
vim编辑器中有三种状态模式
vim编辑器的启动与退出
文件操作
光标移动操作
编辑操作
查找与替换操作
学习工具vimtutor
vim 最简易配置
vim 与HHKB
C语言与自然语言
语法规则
程序与流程
程序
流程和流程图
流程即算法
流程图
请用流程图 将a,b,c 中最大值放到max中并输出。
常用制图工具
常/变量与数据类型(DataType)
C语言中的关键字
变量(Variable)
变量的定义
变量的命名规则:
交换两个变量的内容
驼峰命名法
内存模型
物理基础
CPU读写内存
地址总线
数据总线
控制总线
读写流程:
读取流程(从3单元读取数据)
写入流程:(将26写入单元3)
代码演示
c代码
汇编代码
计算机的基石补码
计算机编码基础
补码的编码规则
模的概念
补码运算
小结
数据类型
类型总揽
基本类型之数值类型
如何求类型的大小
整型数表示范围
浮点数的表示方法和范围
基本类型之字符类型
引入
表示形式
ASCII编码
自实现打印
转义字符
注意事项
常量(Constant)
常量类型
整型常量
实型常量
字符常量
字符串常量
常量的大小
格式输入与输出
printf
基本使用介绍
格式串
scanf
基本使用介绍
格式串
putchar && getchar
输入输出缓冲
类型转化(Type Cast)
隐式转化
算术转化
赋值转化
隐式转化规则
强制转化
浮点数跟0值比较
练习
printf返回值有意义吗?
运算符与表达式(Operator&&Express)
运符符的优先级和结合性
常见运符算符及构成的表达式
赋值运算符与赋值表达式
列表
解析
实战
算术运算符与算术表达式
列表
解析
实战
常见应用类型
关系运算符与关系表达式
列表
解析
实战
常见应用类型
逻辑运算符与逻辑表达式
列表
解析
实战
条件运算符与条件表达式
列表
解析
实战
逗号运算符与逗号表达式
列表
解析
实战
sizeof运算符及其表达式
列表
解析
实战
我本是女娇娥 又不是男儿郎
小结
运算符综合练习
if(x==y) 与 if(x=y) 之间的区别。
表达式3==3==3的值是多少?
表达式100<=a<=300,能表达[100,300]这样的区间吗?
如何判断,我们输入的字符在[a,z]之间。
求[100,999]内的水仙花数
判断输入的年份,是否为润年。
判断数字是否是回文数。
程序结构设计
选择
If else
if 结构及流程图
if else 结构及流程图
if else if 结构流程及演变
注意事项
switch
switch的意义
switch结构
注意事项目
实战项目
小结
练习判断按键
循环
循环三要素
死循环
可控循环
while“当”型循环
语法结构及流程
解析
实战
do while“直到”型循环
语法及流程
解析
实战
while/do while 综合案例
do while 的争议
for“列表”型循环
语法结构及流程
解析
实战
这还是for吗?for(;;)
for与逗号表达式
循环小结
循环的嵌套
嵌套的语法格式
循环建议
先外后内的循环嵌套写法
半开半闭区间写法
嵌套的优化
练习
打印小九九
分别用while 和do while 实现将输入的整数翻转输出。
百钱买百鸡的问题
跳转
break
解析
语法与流程
实战
continue
解析
语法和流程
实战
return
goto
练习
测试break能跳出几层结构
练习
打印如下图形
数组(Array)
一维数组
逻辑与声明
初始化
一维数组的存储
逻辑与存储
实例验证
数组三要素
三要素图示
成员访问
关于变长数组
课堂练习
求一个数组中最大与最小值
求一个数组中第二大的数(用一重循环)
对数组元素进行排序
线性查找
折半查找
二维数组
逻辑与声明
二维数组的存储
逻辑与存储
实列验证
数组三要素
数组中数组成员的访问
初始化
课堂练习
主对角线与次对角线输出
逆置一个二维字符数组
天生棋局
数组名的二义性
一维数组名
二维数组名
练习
写出冒泡排序的逻辑,并实现冒泡排序。
无序数组查找,返回下标(线性查找)
有序数组查找(折半查找)
合并两个有序数组到第三个中去,并使其依然保持有序
求出矩阵两条对角线上的元素之和
有序数组去重,并返回去重后数组元素新个数。
二维数组按列移位
五子棋判输赢
指针(Pointer)
认识内存
线性的内存
变量的地址与大小
变量的地址
地址的大小
间接访问内存
指针常量
指针是有类型地址常量
指针变量
定义
解析
指针变量大小
初始化及间接访问
指向/被指向/更改指向
NULL(色即空)
野指针
NULL指针
练习
打印变量和变量的地址:
如下声明两个变量分别表示什么
区别指针
指针运算
赋值运算
算术运算
关系运算
小结
数组遇上指针
一维数组的访问方式
传统方式(下标/偏移法)
数组名是常量指针
一维数组名跟一级指针的关系
指针访问方式
小结
二维数组的访问方式
下标法
偏移指针法
小结1
小结2
指针法
练习
用指针法逆序打印一个数组。
往指定内存写入数据
判判是否是回文串
函数(Function)
c标准库及库函数
库存在的意义
如何使用库函数
示例
随机函数
正弦函数
获取时间函数
常用库函数
列表
实例
自定义函数
语法格式
调用方法
前向声明
函数返回值
传值与传址
传值与传址的比较
mySwap之传值
mySwap之传址
图解传值与传址
如何来传递一个一维数组
如何来传递一个二维数组
小结
函数调用
实参与形参
形参
实参
普通调用
递归调用
函数递归
递归定义
推算年龄
猴子吃桃子的问题
递归小结
公式结构
书写结构
递归与循环论述
递推年龄,递归改迭代
猴子吃桃,递归改迭代
递归练习
下面的代码输出啥
阶乘
练习
如何产生[m,n]以内的随机数。
产生30个不重复的随机数
请用函数封装基于数组的冒泡排序,选择排序。
用函数的思想来支解选择法排序
请用函数封装基于数组的二分查找。
求中位数
变量作用域/生命周期/修饰符
作用域(Scope)
作用域
定义
划分
变量之分
局部变量
全局变量
图示作用域
作用域叠加
全局作用域
全局变量
全局函数
生命周期(Duration)
局部变量
全局变量
修饰符(Storage Description )
auto(大将军)
register(小太监)
extern(通关文牒)
static(柱国老臣|限离出境)
修饰局部变量
静态局部变量应用
修饰全局变量
修饰函数
小结
字符串(String)
引入
字符串常量
字符串大小
字符串存储
C语言是如何处理字符串常量
字符串与字符数组
常量字符串不可更改
字符串与字符数组比较
字符数组存储字符串
等价条件
不等价条件
小结
字符串的输入与输出
输出
printf
puts
输入
scanf
gets
字符串操作函数
字符数组原生操作
求字符串长度
链接两个字符串
库函数操作
strlen
strcat (concatenate)
strcpy
strcmp
练习
字符串操作函数自实现
myStrlen
myStrcpy
多文件编程
函数声明(.h)
函数实现(.c)
头文件包含#include
指针数组
定义
应用
输出
排序
argc/argv
思考
你所追过的那些“零”
零所代表的意义
实例分析
作业
自实现 myStrcat
自实现myStrcmp
基础版本
优化版本
以下代码能打印什么?
内存管理(Memory)
进程空间
进程vs程序
进程空间图
栈内存(Stack)
栈存储的内容
栈存储的特点
栈大小
常见栈溢出案例
堆内存(Heap)
堆内存特点
堆大小
堆内存的申请与释放
malloc
calloc
realloc
free
应用模型
动态数组
常见错误案例剖析
申请返回判空
服务器模型
谁申请谁释放模型(并非绝对)
其它常见错误
VLD工具使用
下载
安装
使用
开放的地址空间
堆与栈空间的返回
栈空间不可以返回
堆空间可以返回
结构体(Struct)
引例
为什么要引入结构体
开放类型定义
从单变量->数组->结构体
结构体类型定义
无名构造类型
有名构造类型
别名构造体类型
小结
结构体变量初始化及成员访问
初始化及访问
点成员运算符(.)
指向成员运算符( -> (*). )
其它初始化方法(重要)
成员运算符本质
赋值
结构体数组
定义及初始化
内存存储形式
实战
结构体嵌套
结构体中可以嵌套结构体
嵌套结构体变量定义和初始化
结构体类型作参数和返回值
结构体变量作参数和返回值
结构体指针作参数
获取当前时间函数的使用
结构体类型的大小
结构体成员内存分布
内存对齐
什么是不对齐
对齐规则
结构体中嵌套构造类型成员的对齐
数组
结构体成员
结构体使用注意事项
向结构体内未初始化的指针拷贝
未释放结构体内指针所指向的空间
深拷贝与浅拷贝
练习
栈的自实现
栈的特点
代码实现
typedef 类型重命名
typedef 作用
定义新类型
typedef和#define的区别
小结
类型大总结
共用(Union)与枚举(Enum)
共用体
类型定义与变量定义
内存分析
大小
成员访问
成员瞬时有效性
共用体小结
应用
信息存储
写程序判断大小端序
枚举
枚举类型定义
枚举变量与初始化
枚举常量
应用
枚举常量在Qt中的应用
判断日期
增加bool 类型
练习
输出一个整型数据的字符形式
实现short类型变量高低位互换
将下面程序中case 分支常量用宏和枚举来实现
单向链表(List)
链表价值
静态链表
链表节点定义
图示节点
图示链表结构
代码实现
动态链表
链表图示
空链表
非空链表
链表名字解释
创建(尾插法)
图示
代码
创建(头插法)
图示
代码
遍历
求长度
插入
图示
代码
点评
查找
删除
图示
代码
点评
排序
换值排序
换指针排序
点评
链表反转 
图示
代码
链表销毁
环形链表
图示
自实现
作业
输入一字符串,用链表形式储存。
用选择法实现单向链表的排序。
倒序打印单链表。
合并链表
文件(File)
文件流
文件流概念
文件类型
文件分类
图示代码展示
乱码原由
文件缓冲
文件的打开和关闭
FILE结构体
fopen
fclose
一次读写一个字符(文本操作)
fputc
fgetc
关于feof的问题
练习
实现linux中cp命令的功能
文件的加密与解密
一次读写一行字符(文本操作)
fputs
fgets
关于feof的问题
注意事项
练习
读以下文件,请问fgets共执行了多少次?
读配置文件,过滤掉以#开头的注释行和空行。
文本等号以后求和
一次读写一块字符(二进制操作)
fwrite / fread
试读文本文件
写特殊字符进文件
从文件中读特殊字符
返回值的陷阱
二进制读写才是我的本质
文件的加密与解密
读写结构体是长项
文件指针偏移
rewind
ftell
fseek
空洞文件
注意事项
\n与\r\n 的区别
练习
文本文件内容排序(行数不能变)
读写文件生成链表
修改文件内容
位操作(Bit Operation)
位操作与逻辑操作
数据的二进制表示
8位二进制数据的补码
二进制打印
位操作
位与(&)
位或(|)
位取反(~)
位异或(^)
左移(<<)
右移(>>)
优先级
计算如下值:
简记结论
应用
掩码(mask)
功能
生成
练习
输出位数
打印数据的二进制形式(32位)
返转一个数据的最后n位。
判断一个数是不是2的幂数。
实现循环移位
提高
无参交换
有参交换
无参交换
异或加密(文本与二进制)
循环移位加密(文本与二进制)
练习
下面表达式的运算结果是什么?
依数据的符号们判断正负。
练习加密二进制文件
预处理(Pre Compile)
发生时机
宏(Macro)
不带参宏
宏常量
宏类型
带参宏(宏函数)
宏函数
宏出错处理函数
取消宏
取消宏常量
取消宏函数
条件编译(Condition Compile)
单双路(#ifdef / #ifndef #else #endif)
单双多路(#if #elif #endif)
支持不同编译器版本
编译跨平台程序
头文件包含(#include)
包含的意义
包含的方式
方式<>
方式" "
多文件编程
多文件编程意义
多文件编程的前题
实例
定义头文件
定义头文件
头文件自包含
避免头文件重复包含
相互包含的避免
其它
#运算符 利用宏创建字符串
##运算符 预处理的粘和剂
预定义宏
练习
宏展开有次序吗?
项目
项目简介
概要设计
详细设计
实现
界面菜单实现
链表实现
文件读写实现
SVN版本管理控制
附录(Appendix)
参考书目
ascii码表详解
ascii特殊字符解释
运算符优先级
易错优先级集锦
vs2013中使用技巧
禁用_s版本函数的方法
附练习答案
第六章程序设计
百钱买百鸡的问题
第七章数组
数组去重
数组合并有序
章节思维导图
常变量与数据类型
运算符与表达式
数组
函数
作用域与运算符
字符串
文件
位运算
预处理
原创作者: 王桂林 技术交流:QQ 329973169 零基础入门 C 语言 人生除了眼前的苟且,还有 C++和远方。 Author:王桂林 Mail : guilin_wang@163.com 1
原创作者: 王桂林 技术交流:QQ 329973169 版本信息: 版本 V1.0 V1.1 修订人 王桂林 王桂林 审阅人 时间 组织 2016.02.02 2016.11.01 广州小码哥教育科技有限公司 2
原创作者: 王桂林 技术交流:QQ 329973169 1. Hello World......................................................................................................................................1 1.1. 源程序.................................................................................................................................1 1.1.1. C 语言版....................................................................................................................1 1.1.2. C++版.........................................................................................................................1 1.1.3. hello word collection.................................................................................................1 1.2. 注释.....................................................................................................................................1 1.3. 从源程序到可执行程序.....................................................................................................2 1.3.1. 集成开发环境:......................................................................................................2 1.3.2. 手动编译:..............................................................................................................2 1.4. 致敬大师.............................................................................................................................3 2. Linux 常用基础命令...................................................................................................................... 5 2.1. 版本选择.............................................................................................................................5 2.1.1. 内核版本..................................................................................................................5 2.1.2. 发行版本..................................................................................................................5 2.2. 目录结构.............................................................................................................................6 2.2.1. 系统目录..................................................................................................................6 2.2.2. 分区与目录..............................................................................................................8 2.3. 常用命令...........................................................................................................................10 2.3.1. 命令格式................................................................................................................10 2.3.2. 目录切换................................................................................................................10 2.3.3. 文件操作................................................................................................................10 2.3.4. 用户管理................................................................................................................11 2.3.5. 网络命令................................................................................................................11 2.3.6. Ubuntu 下软件安装............................................................................................... 11 2.4. vim 文本编辑.....................................................................................................................11 2.4.1. vim 编辑器中有三种状态模式............................................................................. 12 2.4.2. vim 编辑器的启动与退出......................................................................................12 2.4.3. 文件操作................................................................................................................12 2.4.4. 光标移动操作........................................................................................................12 2.4.5. 编辑操作................................................................................................................13 2.4.6. 查找与替换操作....................................................................................................13 2.4.7. 学习工具 vimtutor................................................................................................ 14 2.4.8. vim 最简易配置.....................................................................................................14 2.4.9. vim 与 HHKB...........................................................................................................14 3. C 语言与自然语言........................................................................................................................16 3.1. 语法规则...........................................................................................................................16 3.2. 程序与流程.......................................................................................................................16 3.2.1. 程序........................................................................................................................16 3.2.2. 流程和流程图........................................................................................................17 3.2.3. 常用制图工具........................................................................................................18 4. 常/变量与数据类型(DataType).................................................................................................. 19 4.1. C 语言中的关键字.............................................................................................................19 4.2. 变量(Variable)................................................................................................................... 19 4.2.1. 变量的定义............................................................................................................19 3
原创作者: 王桂林 技术交流:QQ 329973169 4.2.2. 变量的命名规则:............................................................................................... 19 4.2.3. 交换两个变量的内容........................................................................................... 20 4.2.4. 驼峰命名法............................................................................................................20 4.3. 内存模型...........................................................................................................................21 4.3.1. 物理基础................................................................................................................21 4.3.2. CPU 读写内存.........................................................................................................22 4.3.3. 读写流程:............................................................................................................22 4.3.4. 代码演示................................................................................................................23 4.4. 计算机的基石补码...........................................................................................................24 4.4.1. 计算机编码基础....................................................................................................24 4.4.2. 补码的编码规则....................................................................................................24 4.4.3. 小结........................................................................................................................26 4.5. 数据类型...........................................................................................................................26 4.5.1. 类型总揽................................................................................................................27 4.5.2. 基本类型之数值类型........................................................................................... 27 4.5.3. 基本类型之字符类型........................................................................................... 29 4.6. 常量(Constant)..................................................................................................................33 4.6.1. 常量类型................................................................................................................33 4.6.2. 常量的大小............................................................................................................34 4.7. 格式输入与输出...............................................................................................................35 4.7.1. printf........................................................................................................................35 4.7.2. scanf........................................................................................................................ 38 4.7.3. putchar && getchar.................................................................................................40 4.7.4. 输入输出缓冲........................................................................................................41 4.8. 类型转化(Type Cast).........................................................................................................41 4.8.1. 隐式转化................................................................................................................41 4.8.2. 强制转化................................................................................................................43 4.8.3. 浮点数跟 0 值比较............................................................................................... 43 4.9. 练习...................................................................................................................................44 4.9.1. printf 返回值有意义吗?...................................................................................... 44 5. 运算符与表达式(Operator&&Express).......................................................................................45 5.1. 运符符的优先级和结合性...............................................................................................45 5.2. 常见运符算符及构成的表达式...................................................................................... 47 5.2.1. 赋值运算符与赋值表达式................................................................................... 47 5.2.2. 算术运算符与算术表达式................................................................................... 48 5.2.3. 关系运算符与关系表达式................................................................................... 49 5.2.4. 逻辑运算符与逻辑表达式................................................................................... 50 5.2.5. 条件运算符与条件表达式................................................................................... 52 5.2.6. 逗号运算符与逗号表达式................................................................................... 53 5.2.7. sizeof 运算符及其表达式...................................................................................... 53 5.2.8. 小结........................................................................................................................54 5.3. 运算符综合练习...............................................................................................................55 5.3.1. if(x==y) 与 if(x=y) 之间的区别。........................................................................ 55 5.3.2. 表达式 3==3==3 的值是多少?................................................................... 55 4
原创作者: 王桂林 技术交流:QQ 329973169 5.3.3. 表达式 100<=a<=300,能表达[100,300]这样的区间吗?................................ 55 5.3.4. 如何判断,我们输入的字符在[a,z]之间。........................................................ 55 5.3.5. 求[100,999]内的水仙花数....................................................................................55 5.3.6. 判断输入的年份,是否为润年。....................................................................... 55 5.3.7. 判断数字是否是回文数。................................................................................... 55 6. 程序结构设计..............................................................................................................................56 6.1. 选择...................................................................................................................................56 6.1.1. If else....................................................................................................................... 56 6.1.2. switch...................................................................................................................... 59 6.1.3. 小结........................................................................................................................61 6.1.4. 练习判断按键........................................................................................................61 6.2. 循环...................................................................................................................................62 6.2.1. 循环三要素............................................................................................................62 6.2.2. while“当”型循环................................................................................................63 6.2.3. do while“直到”型循环.......................................................................................65 6.2.4. for“列表”型循环................................................................................................68 6.2.5. 循环小结................................................................................................................69 6.2.6. 循环的嵌套............................................................................................................70 6.2.7. 循环建议................................................................................................................72 6.2.8. 练习........................................................................................................................73 6.3. 跳转...................................................................................................................................75 6.3.1. break........................................................................................................................75 6.3.2. continue.................................................................................................................. 76 6.3.3. return.......................................................................................................................77 6.3.4. goto......................................................................................................................... 78 6.3.5. 练习........................................................................................................................78 6.4. 练习...................................................................................................................................78 6.4.1. 打印如下图形........................................................................................................78 7. 数组(Array)...................................................................................................................................80 7.1. 一维数组...........................................................................................................................80 7.1.1. 逻辑与声明............................................................................................................80 7.1.2. 初始化....................................................................................................................81 7.1.3. 一维数组的存储....................................................................................................83 7.1.4. 数组三要素............................................................................................................84 7.1.5. 关于变长数组........................................................................................................84 7.1.6. 课堂练习................................................................................................................85 7.2. 二维数组...........................................................................................................................89 7.2.1. 逻辑与声明............................................................................................................89 7.2.2. 二维数组的存储....................................................................................................89 7.2.3. 初始化....................................................................................................................92 7.2.4. 课堂练习................................................................................................................94 7.3. 数组名的二义性...............................................................................................................97 7.3.1. 一维数组名............................................................................................................97 7.3.2. 二维数组名............................................................................................................98 5
原创作者: 王桂林 技术交流:QQ 329973169 7.4. 练习...................................................................................................................................99 7.4.1. 写出冒泡排序的逻辑,并实现冒泡排序。....................................................... 99 7.4.2. 无序数组查找,返回下标(线性查找).............................................................. 99 7.4.3. 有序数组查找(折半查找)............................................................................... 99 7.4.4. 合并两个有序数组到第三个中去,并使其依然保持有序...............................99 7.4.5. 求出矩阵两条对角线上的元素之和................................................................. 100 7.4.6. 有序数组去重,并返回去重后数组元素新个数。.........................................100 7.4.7. 二维数组按列移位............................................................................................. 100 7.4.8. 五子棋判输赢......................................................................................................100 8. 指针(Pointer)..............................................................................................................................101 8.1. 认识内存.........................................................................................................................101 8.1.1. 线性的内存..........................................................................................................101 8.1.2. 变量的地址与大小............................................................................................. 102 8.1.3. 间接访问内存......................................................................................................103 8.2. 指针常量.........................................................................................................................103 8.2.1. 指针是有类型地址常量..................................................................................... 103 8.3. 指针变量.........................................................................................................................105 8.3.1. 定义......................................................................................................................105 8.3.2. 解析......................................................................................................................105 8.3.3. 指针变量大小......................................................................................................105 8.3.4. 初始化及间接访问............................................................................................. 106 8.3.5. 指向/被指向/更改指向...................................................................................... 106 8.3.6. NULL(色即空).................................................................................................. 108 8.3.7. 练习......................................................................................................................108 8.4. 指针运算.........................................................................................................................109 8.4.1. 赋值运算..............................................................................................................109 8.4.2. 算术运算..............................................................................................................109 8.4.3. 关系运算..............................................................................................................110 8.4.4. 小结......................................................................................................................110 8.5. 数组遇上指针.................................................................................................................111 8.5.1. 一维数组的访问方式......................................................................................... 111 8.5.2. 二维数组的访问方式......................................................................................... 113 8.6. 练习.................................................................................................................................116 8.6.1. 用指针法逆序打印一个数组。......................................................................... 116 8.6.2. 往指定内存写入数据......................................................................................... 116 8.6.3. 判判是否是回文串............................................................................................. 116 9. 函数(Function)........................................................................................................................... 117 9.1. c 标准库及库函数...........................................................................................................117 9.1.1. 库存在的意义......................................................................................................117 9.1.2. 如何使用库函数................................................................................................. 117 9.1.3. 示例......................................................................................................................118 9.1.4. 常用库函数..........................................................................................................123 9.2. 自定义函数.....................................................................................................................124 9.2.1. 语法格式..............................................................................................................124 6
原创作者: 王桂林 技术交流:QQ 329973169 9.2.2. 调用方法..............................................................................................................125 9.2.3. 前向声明..............................................................................................................125 9.2.4. 函数返回值..........................................................................................................126 9.3. 传值与传址.....................................................................................................................126 9.3.1. 传值与传址的比较............................................................................................. 126 9.3.2. 图解传值与传址................................................................................................. 128 9.3.3. 如何来传递一个一维数组................................................................................. 129 9.3.4. 如何来传递一个二维数组................................................................................. 131 9.3.5. 小结......................................................................................................................131 9.4. 函数调用.........................................................................................................................131 9.4.1. 实参与形参..........................................................................................................131 9.4.2. 普通调用..............................................................................................................131 9.4.3. 递归调用..............................................................................................................132 9.5. 函数递归.........................................................................................................................133 9.5.1. 递归定义..............................................................................................................133 9.5.2. 递归小结..............................................................................................................135 9.5.3. 递归与循环论述................................................................................................. 135 9.5.4. 递归练习..............................................................................................................137 9.6. 练习.................................................................................................................................137 9.6.1. 如何产生[m,n]以内的随机数。........................................................................ 137 9.6.2. 产生 30 个不重复的随机数............................................................................... 137 9.6.3. 请用函数封装基于数组的冒泡排序,选择排序。.........................................137 9.6.4. 用函数的思想来支解选择法排序..................................................................... 137 9.6.5. 请用函数封装基于数组的二分查找。............................................................. 138 9.6.6. 求中位数..............................................................................................................138 10. 变量作用域/生命周期/修饰符.............................................................................................. 139 10.1. 作用域(Scope).............................................................................................................. 139 10.1.1. 作用域................................................................................................................139 10.1.2. 变量之分............................................................................................................139 10.1.3. 图示作用域....................................................................................................... 140 10.1.4. 作用域叠加....................................................................................................... 140 10.1.5. 全局作用域....................................................................................................... 141 10.2. 生命周期(Duration)......................................................................................................142 10.2.1. 局部变量............................................................................................................142 10.2.2. 全局变量............................................................................................................142 10.3. 修饰符(Storage Description )....................................................................................... 142 10.3.1. auto(大将军).......................................................................................................142 10.3.2. register(小太监)..................................................................................................142 10.3.3. extern(通关文牒)................................................................................................143 10.3.4. static(柱国老臣|限离出境)............................................................................... 145 10.4. 小结...............................................................................................................................147 11. 字符串(String)..........................................................................................................................148 11.1. 引入...............................................................................................................................148 11.2. 字符串常量...................................................................................................................148 7
原创作者: 王桂林 技术交流:QQ 329973169 11.2.1. 字符串大小....................................................................................................... 149 11.2.2. 字符串存储....................................................................................................... 149 11.2.3. C 语言是如何处理字符串常量......................................................................... 150 11.3. 字符串与字符数组.......................................................................................................150 11.3.1. 常量字符串不可更改....................................................................................... 150 11.3.2. 字符串与字符数组比较................................................................................... 150 11.3.3. 字符数组存储字符串....................................................................................... 151 11.3.4. 小结....................................................................................................................152 11.4. 字符串的输入与输出.................................................................................................. 153 11.4.1. 输出....................................................................................................................153 11.4.2. 输入....................................................................................................................153 11.5. 字符串操作函数...........................................................................................................154 11.5.1. 字符数组原生操作........................................................................................... 154 11.5.2. 库函数操作....................................................................................................... 155 11.6. 字符串操作函数自实现.............................................................................................. 158 11.6.1. myStrlen.............................................................................................................. 158 11.6.2. myStrcpy..............................................................................................................159 11.7. 多文件编程...................................................................................................................160 11.7.1. 函数声明(.h)......................................................................................................160 11.7.2. 函数实现(.c)...................................................................................................... 160 11.7.3. 头文件包含#include..........................................................................................161 11.8. 指针数组.......................................................................................................................161 11.8.1. 定义....................................................................................................................161 11.8.2. 应用....................................................................................................................162 11.8.3. 思考....................................................................................................................164 11.9. 你所追过的那些“零”.............................................................................................. 164 11.9.1. 零所代表的意义............................................................................................... 164 11.9.2. 实例分析............................................................................................................164 11.10. 作业.............................................................................................................................165 11.10.1. 自实现 myStrcat............................................................................................. 165 11.10.2. 自实现 myStrcmp............................................................................................165 11.10.3. 以下代码能打印什么?................................................................................. 166 12. 内存管理(Memory)................................................................................................................. 167 12.1. 进程空间.......................................................................................................................167 12.1.1. 进程 vs 程序...................................................................................................... 167 12.1.2. 进程空间图....................................................................................................... 167 12.2. 栈内存(Stack)................................................................................................................167 12.2.1. 栈存储的内容................................................................................................... 167 12.2.2. 栈存储的特点................................................................................................... 168 12.2.3. 栈大小................................................................................................................168 12.2.4. 常见栈溢出案例............................................................................................... 168 12.3. 堆内存(Heap)................................................................................................................169 12.3.1. 堆内存特点....................................................................................................... 169 12.3.2. 堆大小................................................................................................................169 8
分享到:
收藏