首页 > 代码库 > C语言总结
C语言总结
十一天课的总结(只为总结,详细请看前面的)
一、顺序结构
从上往下依次执行的代码结构
计算机执行程序时,都是编译成二进制文件,计算机中又分为
二进制:例如 101001001就是一个二进制数字
八进制:例如 023767是一个八进制数字,前面的0代表这是一个八进制数字
十进制:10,33,22是十进制数字
十六进制:0x28AD代表一个十六进制的数字,0x代表这是个十六进制的数字
运算符:
int a = 10,b = 20;
算术运算符
+ :加法运算示例:a + b = 20
- :减法运算 a - b = -10
* :乘法运算 a * b = 200
/ : 除法运算 a / b = 0(整数除法结果取整数部分,小数点后面的都不要)
任何数除10相当于去掉个位
% : 取余运算 a % b = 10
比较运算符(为布尔类型)
> :比较是否大于 a > b false
< :比较是否小于 a < b true
== :比较是否等于 a == b false
>= :大于等于 a >= b false
<= :小于等于 a < = b false
%= :取余等于
!= :不等于
逻辑运算符(布尔类型)
&&:并且条件1 && 条件2 同时满足条件1和2时,结果才为真(一架既假,两真才真)
| | :或者条件1 | | 条件2 满足一个条件结果就为真(一真既真,两假才假)
! :非条件 ! 将条件的布尔值取反
常量、变量、表达式
常量:在程序中不能改变
变量:在程序中可以改变
表达式:由常量、变量、运算符结合而成的式子
二、选择结构
有选择的执行代码
if (条件表达式){
语句
}
if (条件表达式1){
语句1
}else if(条件表达式2){
语句2
}. . .
switch(){
case1:{
语句1;
break;
}
case2:{
语句2;
break;
}
. . .
default:{
语句;
break;
}
}
三、循环结构
当满足循环条件时,反复执行某一段代码(循环体)的结构
for 循环
for(条件变量初始化;条件表达式;条件变量增量){
语句(循环体)
}
while 循环
条件变量初始值;
while(条件表达式){
语句(循环体);
条件变量增量;
}
do . . .while 循环(基本不使用)
do(语句(循环体)){
条件变量增量
}while (条件表达式)
四、数组、结构体
一位数组、二维数组、多维数组、字符数组、字符串数组
必须是相同数据类型元素组成
二维数组排序(冒泡排序)
int arr[ 5 ] = {2, 6, 3, 7, 5};/ / count 是数组的大小
for (int i = 0; i < count - 1; i++){
for(int j = 0; j < count - 1 - i; j++){
if (arr[ j ] > arr[ j + 1 ]){
int temp = arr[ j ];
arr[ j ] = arr[ j + 1 ];
arr[ j + 1 ] = temp;
}
}
}
结构体:可以存放多个类型元素
struct student {
结构体变量1;
结构体变量2;
. . .
};
一般我们定义结构体时,直接用typedef给结构体重新定义一个新名字
typedef struct {
结构体变量1;
结构体变量2;
. . .
} Student; / / 给结构体起一个新名字Student
另外define(宏定义)、enum(枚举)也是结构体
结构体数组:存放结构体变量的
示例:
typedef struct {
char name[20];
int age;
float score;
} Student;
Student stu1 = {" xiaoming ", 20, 80};
Student stu2 = {" xiaohong ", 19, 90};
Student stu[ ] = {stu1, stuff};
printf("%s %d %.2f",stu[1].name, stu[1].age, stu[1].score) / /打印数组元素时,需要在后面加上( . 变量名)
五、函数(详细请看函数那一篇)
实现某一功能的代码块的封装
例如:格式化的输入、输出函数
printf(" ")输出函数
scanf(" ", &变量名)输入函数
像这类由系统提供的函数称为系统函数,由编译者本身自己编写的函数称为自定义函数
例如:
int sum (int a,int b){
return a + b;
}
这是一个自定义的求和的函数
函数分为:
无参数无返回值: void a(){
printf(" hello ");
}
无参数有返回值:int b(){
return 3;
}
有参数无返回值:void c(int x){
printf(" hui zi ");
}
有参数有返回值:int d (int y){
return y;
}
函数的编写步骤:
1:函数的声明
2:函数的编写
3:函数的调用
六、指针(详细内容请看前两篇)
指针就是地址,指向某个变量地址
函数指针、指针函数
函数指针是一个指针,指向一个函数
指针函数是一个函数,返回值是一个指针
结构体指针
指向结构体的指针
七、动态内存的划分(详细内容请看前两篇)
栈区:内存地址最高,声明的变量之类的都在这,先进后出,不能自动释放
堆区:内存空间最大的,需要手动申请、手动释放
全局区(静态区):存放全局变量,在任何变量前面加static,该变量就会放入全局区
常量区:存放常量
代码区:代码编译产生的CPU指令存放的区域
C语言总结