导图社区 C语言读书笔记
这是一篇关于C语言读书笔记的思维导图,主要内容包括:1.进制的相关讲解,2.整数的宽度、存储、运算,3.字符编码,4.第一个C程序,5.变量与数据类型,6.运算符与表达式,7.控制/分支语句,8.循环语句,9.函数,10.数组,11.结构体,12.结构体的字节对齐,13.指针。
包括高中物理、初中物理、大学物理等各个课程或书籍的思维导图
这是一篇关于高中数学的思维导图,主要内容包括:函数,概率统计,不等式,数列,立体几何,三角函数,解析几何,导数,逻辑用语,集合。
这是一篇关于物理记忆法的思维导图,主要内容包括:顾名思义法,理象记忆法,浓缩记忆法,口诀记忆法,比较记忆法,推导记忆法,归类记忆法,图像记忆,系统记忆,实验记忆,图表记忆法,因果:条件记忆法。
这是一篇关于第一章 静电场的思维导图,主要内容包括:第三节 电场强度,第一节 电荷及其守恒定律,第二节 库仑定律,第四节 电势能与电势,第五节电势差。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
C语言读书笔记
1.进制的相关讲解
十进制
二进制
十六进制
进制之间的相互转换
十六进制的1-16与二进制的对应关系
2.整数的宽度、存储、运算
数据宽度
Bit(位)
Byte(字节)<br>
Word(字)
DoubleWord/DWORD(双字)<br>
整数的存储
无符号数的编码规则
存在一个唯一对应的二进制序列
有符号数的编码规则
主要区别在于最高位为符号位
原码
正数
负数
反码<br>
补码
存储模式
大端模式<br>
小端模式
数据的位运算
与
或
异或
非
左移
右移
计算机不会做加法
加法
3.字符编码
ASCII编码
GB2312/GB2312-80
UNICODE编码
UTF-16
UTF-8
BOM字节顺序标记
UTF-8LE
UTF-8BE
UTF-16LE
UTF-16BE
4.第一个C程序
介绍编译器和IDE
写第一个C程序"Hello World"
分析第一个C程序
初步理解函数
main函数
printf()函数
换行字符\n
理解关键字
如何添加注释
声明与赋值
花括号、程序体和代码块
C89、C99和C11
源文件、编译和链接
5.变量与数据类型
什么是变量
如何定义一个变量
数据类型
基本类型
整数类型
char
short<br>
int
long
浮点类型
float
double
long double
构造类型
数组类型
结构体类型
共用体类型
指针类型
空类型(void)<br>
数据的长度
sizeof运算符
数据的打印
printf()函数的格式说明符
有符号数和无符号数的区别<br>
赋值时的无区别
拓展比较时的区别
float与double的存储方式<br>
遵循IEEE规范
6.运算符与表达式
变量的隐式转换
char型和short型参与运算时,必须先转换成int型
所有的浮点运算都是以双精度袭进行的,即使仅含float单精度变量运算的表达式,也要先转换成double型
上面的运算都属于升级. 在任何涉及两种数据类型的操作中,它们之间等级较低的类型会被转换成等级较高的类型
具体的转换等级char->short->int->float->double
运算符
算术运算符
+
-<br>
*
/
%
++
a++
++a
--
关系运算符
<
<=<br>
>
>=
==
!=
总结
关系运算符的值只能是0或1
关系运算符的值为真的时候,结果值都为1
关系运算符的值为假的时候,结果值都为0
逻辑运算符
!
&&
||
只判断第一个表达式的问题重现
位运算符
<<
>>
~
|
^
&
赋值运算符
=
+=
-=
*=
/=
%=
<<=
>>=
&=
^=
|=
条件运算符(三目运算符)
x>y?x:y;
优先级
不必记,必要的时候进行括号操作<br>
7.控制/分支语句
if语句<br>
if else语句
if else if语句
switch和break语句
if..else与switch效率问题
在四个分支内的if..else语句和switch语句根据反汇编的代码发现其效率是一致的
switch结构的执行效率远远高于if....else,在分支条件多的情况下愈发明显
8.循环语句
while语句<br>
do while语句
for语句
break和continue
9.函数
一些汇编语言的基础
函数的定义
函数的形参与实参
函数的返回值
函数的调用
函数声明以及函数原型
全局变量和局部变量
变量的作用域
汇编角度看C语言函数调用
10.数组
一维数组
初始化
数组的索引
数组越界
数组的赋值
数组的遍历
数组是一块连续的内存
反汇编查看
多维数组
二维数组
11.结构体
结构体的定义
结构体的读写
结构体数组的运用
结构体的内存结构
12.结构体的字节对齐
字节对齐的定义
内存对齐,提高寻址效率
#pragma pack(n)指令
13.指针
指针类型就是一种数据类型
定义带“*”类型的变量<br>
指针变量的赋值
指针变量的数据宽度
指针类型的自增与自减(++/--)
指针类型的加减运算
指针类型的比较
14.&取地址符
取全局变量的内存地址
取局部变量的内存地址
探测变量的类型
15.*取值运算符<br>
*的几种用途
探测*指针类型
取地址符与取值运算符的对比
16.数据类型变量在函数的参数传递<br>
基本数据类型作为参数传递
数组作为参数
用指针操作数组
17.指针与字符串
字符串的表示形式
数组形式
数组形式一
数组形式二
指针形式
常用的字符串处理函数<br>
int strlen(char* s)字符串长度函数
char* strcpy(char* dest,char* src);字符串复制函数
char* strcat(char* dest,char* src);字符串拼接函数
int strcmp(char* s1,char* s2)字符串对比函数
18.指针取值的两种方式
一级指针与多级指针
*()与[]的互换表示
19.结构体指针
结构体指针的特性<br>
跟指针类型一致
使用结构体指针
给结构体指针赋值
修改结构体指针的值
结构体指针不一定指向结构体
指向数组
20.指针数组与数组指针<br>
指针数组
指针数组的定义
指针数组的赋值
结构体指针数组
数组指针
数组指针的定义
数组指针的宽度与运算
数组指针的使用
二维数组指针访问一维数组<br>
21.函数调用约定、函数指针与指针函数<br>
函数调用约定
__cdecl
__stdcall
__fastcall
函数指针
函数指针的赋值
函数指针的使用
指针函数<br>
本质就是函数,只不过返回值是指针类型
22.预处理
宏定义
文件包含
条件编译
23.补充知识
typedef的用法
const的用法
rand和srand用法
格式化输入和输出函数scanf() 和 printf()
24.文件操作
C语言中的文件是什么
文本文件与二进制文件的区别
打开文件和关闭文件
fopen()打开文件
fclose()关闭文件
FILE 结构体的详解
字符的形式读写文件
字符读取函数 fgetc
字符写入函数 fputc
字符串的形式读写文件
读字符串函数 fgets
写字符串函数 fputs
数据块的形式读写文件
fread() 函数用来从指定文件中读取块数据
fwrite() 函数用来向文件中写入块数据
格式化读写文件
fscanf()
随机读写文件
实现文件复制
获取文件大小
注意不能超过2GB/太大内存读写严重
25.C语言内存的一些补充
虚拟内存
虚拟地址空间和编译模式<br>
内存分页