导图社区 c语言
一张思维导图带你学习c语言的知识点,包括数据、常量与变量、数组、函数、语句、指针、操作符和表达式、结构体。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
c语言
数据
基本数据类型
整型
基本整型:int
短整型:short
长整型:long
无符号整型:unsigned
无符号短整型:unsigned short
无符号长整型:unsigned long
浮点型(实型)
单精度浮点型(实型):float
双精度浮点型(实型):double
字符型
char
构造类型
数组类型
结构体类型:struct
枚举类型:enum
联合类型:union
指针类型
空类型
存储形式
整型:在内存中存放的是补码
常量与变量
常量
值常量(字面值/直接常量)
如:46、-35、’a’、’progranmming ’等
符号常量:#define定义的标识符常量
如:#define MAX 100
const定义的常量
枚举常量
变量
变量的命名规则
分类
注意static修饰的变量(静态变量)
全局变量
局部变量
初始化和赋值
作用域
代码块作用域
文件作用域
原型作用域
函数作用域
链接属性
外部链接属性
内部链接属性
无属性
语句
空语句
只含有一个分号的语句,不执行任何操作
表达式语句
在表达式结尾加上分号的语句
循环语句
while语句
do-while语句
for语句
条件判断语句
条件语句
if()…
if()……else
多分支选择语句
switch(){……}
注意break!
转向语句
无条件转向语句
goto
别用!
结束本次循环语句
continue
终止执行switch或循环语句
break
函数返回语句
return
操作符和表达式
操作符
算数操作符:+ - * / %
移位操作符: <<左移 >>右移
位操作符:&按位与,|按位或,^按位异或
赋值操作符:=
复合操作符
常见:+=,-=,*=,/=,%=
不常见:>>=,<<=,&=,|=,^=
单目操作符
常见
!逻辑反操作 -负值 +正值 &取地址 --前置,后置--(自减1) ++前置,后置++(自加1) (类型)强制类型转换
不常见
sizeof 操作数的类型长度 ~ 对一个数的二进制按位取反 *间接访问操作符(解引用操作符)
关系操作符
> >= < <= !=用于测试“ 不相等” ==用于测试“相等”
逻辑操作符
&& 逻辑与 ||逻辑或
注意逻辑运算的短路问题
条件操作符
三元运算符 ?:
逗号表达式
下标引用、函数调用和结构成员
操作符的属性
1.操作符的优先级 2.操作符的结合性 3.是否控制求值顺序
表达式求值
隐式类型转换
算数转换
结构体
定义
声明
初始化
操作
结构体变量作为函数参数
结构体变量作为函数返回值
结构体数组
链表
指针
指针就是变量,用来存放地址的变量 (指针和指针变量统称为指针)
指针的类型
基本类型
常见: char *p1=NULL int *p2=NULL float *p3=NULL double *p3=NULL
其他: short *p4=NULL long *p5=NULL
数组指针
int (*p[10]) 解释:p先和*结合,说明p是一个指针变量,然后指针指向的是一个大小为10的整型数组,所以p是一个指针,指向一个数组,叫数组指针
函数指针
void(*p)() 解释:p先和*结合,说明p是一个指针,指针指向的是一个函数,指向的函数无参数,返回值类型为void
指针的解引用
取出指针所指向地址处的值
指针的使用
数据类型+*+变量名
如: double *pdb char *pch int *pt
声明时初始化
如:int x,*p=&x;
赋值时初始化
如: int x,*p; p=&x;
赋值
给指针赋地址值 给指针所指向的变量赋数据值
⚠️必须先给指针赋地址值才能赋数据值⚠️
如: int x,*p=&x; x=2; *p=5;
比较
比较两个指针的地址值(同类型) ->比较谁前谁后
算数运算
改变指针指向的位置
二级指针
存放一级指针的指针
指针的运算
指针+-整数
指针+-指针
指针的关系运算
指针和数组的关系
没啥关系
函数
单独实现某种功能的子程序
函数的组成
函数名,函数参数,语句项,返回类型
函数的分类
库函数
c语言库函数:http://www.cplusplus.com/reference/
常用标准库函数
数学函数:#include<math.h>
字符函数:#include<ctype.h>
字符串函数:#include<string.h>
类型转换函数:#include<stdlib.h>
自定义函数
函数设计的注意事项: 1.注意定义函数类型 2.参数不要过多 3.函数设计要注意代码的可复用性 4.函数参数和返回值的设计要满足功能的需求
函数的声明和定义
函数声明
声明步骤: 1.规定返回类型(int,float,char,void…)(void不用返回任何值) 2.函数名称 3.变量类型+变量名称(int a,char b,int arr[]…)
注意事项: 1.告诉编译器有一个函数叫什么,参数是什么,返回类型是什么(具体存不存在无关紧要) 2.先声明后使用,一般在主函数之前声明(若不在主函数前声明要注意多个函数之间的顺序)
函数定义
函数的定义是指函数的具体实现,交到(主)函数的功能实现
函数的调用
传值调用
地址调用
嵌套调用
链式访问
调用过程
栈帧创建与销毁
递归调用过程
main函数的参数
可变参数列表
函数的链接属性
数组
创建与初始化
存储
在内存中从低地址到高地址连续存放
数组分类
一维数组:arr[]
多维数组:存放着n-1维的一维数组
如二维数组:arr[1][2];
指针数组:数组里存着指针元素
int *arr1[10]; char *arr2[4];
访问形式
下标访问
指针访问
数组名
数组名作为函数的参数
数组名单独使用的意义
三种控制结构
顺序结构
选择结构
循环结构
浮动主题