导图社区 C语言
一张思维导图带你了解C语言的内容,包括选择控制结构、循环控制结构、基本算数运算、数据形式、选择控制结构、数据类型等。
编辑于2021-12-08 02:59:03C语言
C语言之父:丹尼斯·里奇
循环控制结构
循环的控制方法
条件控制condition controlled
计数控制counter controlled
标记控制sentinel controlled
for循环
for(表达式1;表达式2;表达式3)语句
while循环
语句0 while(表达式) {语句1 语句2}
do-while循环语句
语句0 do {语句1 语句2}while表达式;
逗号运算符
表达式1,表达式2,...,表达式n
for(i=1,j=n;i<=j;i++,j--) 循环初始条件,循环控制条件,循环转化条件(分别对应上面三个)
流程的转移控制
break语句
退出一层循环或switch,转到闭合循环之后的那一点。
continue语句
中断此次循环,开始下一次循环
大多数for循环可以转移为while循环,但并非全部,例如循环体中有continue时
函数与模块化程序设计
函数
定义:是C中模块化程序的最小单位
C程序的结构:一个C程序由一个和多个源程序组成,一个源程序文件可由一个或多个函数组成
分类
标准库函数
自定义函数
向函数传递值和从函数返回值
调用者通过函数名调用函数
有返回值时,可放到一个赋值表达式语句中
还可放到一个函数调用语句中,作为另一个函数的参数
函数调用
函数定义时的参数,形式参数,简称形参
函数调用时的参数,实际参数,简称实参
每当执行函数调用时,现场保护并为函数的内部变量(包括形参)分部内存,把实参值复制给形参,单向传值,实参与形参数目一致,类型匹配。
断言(assert)
测试一个条件并可能使程序终止
递归函数
变量的作用域和存储类型
变量的作用域
指在源程序中定义变量的位置及其能被读写访问的范围,分为
局部变量
在语句块内(函数,复合语句)定义的变量
静态局部变量
离开函数,值仍保留
动态局部变量(自动变量)
离开函数,值就消失
全局变量
在所有函数之外定义的变量
静态外部变量
仅限本文件使用
外部变量
非静态外部变量允许其他文件使用
选择控制结构
算法的概念及其描述方法
自然语言描述
伪码描述
顺序结构
输入数据
计算和赋值
输出数据
算法的特性
有穷性
确定性,无歧义
有效性
没有输入或有多个输入
有一个或多个输出
关系描述符与关系表达式
<
less than
<=
less than or equal to
>
greater than
>=
greater than or equal to
==
equal to
!=
not equal to
选择结构(分支结构)
单分支
if
双分支
if-else
多分支
else-if
用于多分支的switch语句
swtich(表达式)(表达式必须是int或char) {case value1(vaule必须是常量1)}
逻辑运算符和逻辑表达式
&&
与(and)当且仅当两者都为真
ll
或(or)只要两者中有一个为真
!
非(not)
数据类型
基本类型
数据类型
整形
短整型short
占2个字节
整型int
占4个字节
长整型long
占4个字节
无符号整型unsigned
实型
单精度型float
4个字节
双精度型double
8个字节
长双精度实型long double
字符类型char
1个字节
构造类型
数组
结构体
共用体union
枚举类型enum
指针类型
空类型void
定义类型typedef
程序介绍
main主函数名
必须有且只有一个
void函数类型
使用标准库函数时应在程序开头一行写:#include<stdio.h>
运行C程序步骤
编辑
编译
链接
执行
程序
源程序
目标程序
可执行程序
内容
程序设计语言
机器语言
机器语言
可执行?
不可以
不可以
可以
文件名后缀
.c
.obj
.exe
数组存储
在计算机中以二进制的形式存储在内存中
字符串
字符串常量
一串以′\o′结尾的衣服在C语言中被看作字符串
用双引号括起的一串字符是字符串常量,C语言自动为其添加′\0′
字符串的存储
字符指针
字符指针就是指向字符串首地址的指针
字符串保存在只读的常量储存区
字符串的访问和输入\输出
scanf(“%s”,str)不能输入带空格的字符串
gets(str)可以输入带空格的字符串
字符串处理函数
strlen(字符串)
计算字符串长度
strcpy(目的字符串,源字符串)
字符串复制
stract(目的字符串,源字符串)
字符串连接
strcmp(字符串1,字符串2)
字符串比较
指针
变量的内存地址
内存中的每个字节都有唯一的编号(地址)
指针类型的定义和初始化
用指针类型的变量来存放变量的地址
函数指针及其应用
函数指针就是指向函数的指针变量
特殊性
指针变量中保存的内容只能是地址
必须初始化后才能使用,否则只向不确定的存储单元
只能指向同一基类型的变量
可参与的运算:加减整数,自增,自减,关系,赋值
数组和算法基础
一维数组的定义
int a[10]
二维数组的定义
int b[2][3]
n维数组的定义
int c[3][2][4]
排序与查找
排序算法
交换法排序
选择法排序
冒泡排序
插入排序
查找算法
顺序查找,也称线性查找
折半查找,也称对分搜索
计算变量和类型占内存的大小
用sizeof运算符
语法形式
运算结果
sizeof(表达式)
表达式值所属类型占用的字节数
sizeof(类型)
类型占用的字节数
内存容量单位
比特bit
字节1Byte=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
数据形式
常量
在程序中不能改变
变量
变量的值在执行过程中可以改变
基本算数运算
算数运算符
乘法*
除法/
求余%
可以生成随机数
例如1~100:magic=rand()%100+1
加法+
减法-
复合的赋值运算符
变量x变量符op=表达式
例如:num+=5 similar to num=num+5
增1和减1运算符
m=++n
n=n+1
m=n
m=n++
m=n
n=n+1
宏常量(符号常量)
宏定义
#define
标识符
字符串
#define
PI
3.14159
键盘输入和屏幕输出
数据的格式化屏幕输出
printf(格式控制字符串,输出项表)
例如:printf(“a=%d b=%f”,a, b)
printf()格式字符
%d
decimal
输出十进制有符号int型
%u
unsigned
输出十进制无符号int型
%f
float
以小数形式(6位小数)输出float double
%e
exponent
以标准形式输出float double
%c
character
以字符形式输出单个字符
%d%%
输出%
printf()的格式修饰符
I
在d,u前输出long型
L
在f,e前输出long double型
h
在d,u前输出shout型
m
输出数据的最小位宽
数据位宽大于m,按实际位宽输出
数据位宽小于m时,右对齐,左补空格
-m
左对齐右补空格
显示精度.n
对浮点数表示输出n位小数
格式: %.nf
一般格式: %m.nf
数据的格式化键盘输入
格式
scanf(格式控制字符串,输入地址表);
scanf("%d%f",&a,&b);
scanf的格式字符
%c
输入一个字符(包括空白字符)
%d
输入十进制int型数
%f,%e
输入float型数(不能指定精度)
%%
输入一个%
scanf的格式修饰符
m
输入数据的位宽
I
在d,u前输入long型,在f,e前输入double型
L
在f,e前输入long double型
h
在d前输入short型
%Id
输入long int型
%hd
输入short int型
%f
输入float型
%lf
输入double型
%Lf
输入long double型
单个字符的输入与输出
字符输出函数
putchar
字符输入函数
getchar