Skip to content

Commit

Permalink
Update lec5.md
Browse files Browse the repository at this point in the history
  • Loading branch information
yelan187 authored Dec 14, 2024
1 parent 2396356 commit 0414d69
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions docs/programming/24fall/lec5.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 第五讲:期末复习(上)

## 1 变量与计算
## 变量与计算

### 1.1 变量
### 变量
```c
类型名 变量名;
int x;
Expand All @@ -24,8 +24,8 @@ D. define

未初始化的变量的值是**不确定**

### 1.2 数据类型和字面量
#### 1.2.1 数据类型
### 数据类型和字面量
#### 数据类型
不同的数据类型占据不同的大小,有不同的取值范围
```C
unsigned short sht = 0;
Expand All @@ -49,7 +49,7 @@ printf("%d\n", sizeof(a++));
printf("%d\n", a);
```

#### 1.2.2 字面量
#### 字面量
字面量即一个值的**表示方法**,同一个值可能有很多种表示方法

```C
Expand All @@ -66,7 +66,7 @@ char f = '\x41'; // 十六进制,没有长度限制,遇到非十六进制字
char f0 = '\x00041';// 和上面的是一样的
```

### 1.3 计算
### 计算

带运算符的式子是表达式,表达式有值和副作用

Expand All @@ -86,9 +86,9 @@ char f0 = '\x00041';// 和上面的是一样的
表达式 `(3==x==3)` 的值恒为`0`?
表达式 `(x=4,y=3)`的值恒为`3`?

## 2 分支和循环
## 分支和循环

### 2.1 分支
### 分支
`else`总是与最近的一个没有被匹配的`if`配对

```C
Expand Down Expand Up @@ -148,7 +148,7 @@ switch (i) {
printf("%d#%d#", i, b);
```
### 2.2 循环
### 循环
循环体如包括有一个以上的语句,则必须用一对大括号`{}`括起来,组成复合语句,复合语句在语法上被认为是一条语句。
```C
Expand All @@ -160,7 +160,7 @@ for (a=1,i=-1;-1<=i<1;i++) {
printf("%2d", i);
```

## 3 数组
## 数组
数组的定义
```C
类型名 数组名[数组长度];
Expand Down Expand Up @@ -199,7 +199,7 @@ int f[][4] = {
};
```

## 4 函数
## 函数
- 类型:决定函数的**返回值**。若对函数类型未加显式说明,则函数的隐含类型为`int`
例4-1:
C语言中,通过函数调用只能获得一个返回值?
Expand Down Expand Up @@ -240,16 +240,16 @@ void swap(int x,int y) { // 函数定义
例4-4:
函数调用语句`function((a,b),c)`中含有的实参个数为?
## 5 排序
## 排序
|算法|平均时间复杂度|最好情况|最坏情况|稳定性|
|:--:|:--:|:--:|:--:|:--:|
|冒泡排序|O(n^2)|O(n)|O(n^2)|稳定|
|选择排序|O(n^2)|O(n^2)|O(n^2)|不稳定|
|插入排序|O(n^2)|O(n)|O(n^2)|稳定|
## 6 指针
## 指针
### 6.1 定义
### 定义
指针变量的值是变量的地址,指针变量本身也有自己的内存地址
```C
Expand Down Expand Up @@ -281,9 +281,9 @@ D.`int (*p)[4];`

`void *`是合法的指针类型,指向一个类型未知的对象,可被隐式转换为任意其他类型的指针

### 6.2 用法
### 用法

#### 6.2.1 指针的运算
#### 指针的运算
- 指针与整数可以加减,`p+n`的值是`p`的值加上`n`乘以**指针所指向的类型的字节数**,同样地,指针的**减法结果并不是地址的差值**

```C
Expand All @@ -308,7 +308,7 @@ printf("%d\n", *(p + 4)); // 64位机器
printf("%d#%d", a, b);
```

#### 6.2.2 指针与数组
#### 指针与数组
指针和数组关系紧密:
- 数组在很多情况下会进行到指针的**隐式转换**
- `p[n]``*(p+n)`**完全等价**的(你甚至可以写`1[a]`来访问数组的第一个元素)
Expand Down Expand Up @@ -348,7 +348,7 @@ C.`void *var = NULL;`
D.`char *v=NULL, **var=&v;`
E.`char var[10][10], **p=var;`

#### 6.2.3 指针与字符串
#### 指针与字符串
字符串常量在内存中是连续存储的,字符串常量在内存中的存储形式是字符数组的形式,字符串常量在内存中是连续存储的,字符串常量在内存中的存储形式是字符数组的形式

```C
Expand Down

0 comments on commit 0414d69

Please sign in to comment.