Skip to content

Commit 7bbeaba

Browse files
committed
小修改
1 parent a395a31 commit 7bbeaba

File tree

5 files changed

+48
-19
lines changed

5 files changed

+48
-19
lines changed

docs/教程/正文/语法和标准库/10_结构体.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,4 @@ int main(void) {
8484

8585
1. [**[11001]**](/教程/题解/语法和标准库/结构体/11001.md) 实现**复数**结构体,并实现加、减、乘、除运算,以及求模长和辐角。
8686
2. [**[11002]**](/教程/题解/语法和标准库/结构体/11002.md) 实现**分数**结构体,并实现其加减乘除运算。要求输出的结果为最简分数。
87-
3. *实现**初等函数**结构体,并实现其求导和近似定积分的操作。
87+
3. \* 实现**初等函数**结构体,并实现其求导和近似定积分的操作。

docs/教程/正文/语法和标准库/18_泛型选择.md

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 泛型选择
22

3-
泛型选择(Generic Selection) 是 C23 标准引入的一个新特性,它根据表达式的类型来选择不同的值。通过 `_Generic` 关键字实现。
3+
泛型选择(Generic Selection) 是 C11 标准引入的一个新特性,它根据表达式的类型来选择不同的值。通过 `_Generic` 关键字实现。
44

55
## 基本语法
66

@@ -69,10 +69,3 @@ float max_float(float a, float b) {
6969
return (a > b) ? a : b;
7070
}
7171
```
72-
73-
## 注意事项
74-
75-
1. 泛型选择在编译时进行,不会产生运行时开销
76-
2. 每个类型只能出现一次
77-
3. 表达式不会被求值,只会用来判断类型
78-
4. 类型匹配必须精确,不会进行隐式类型转换

docs/教程/正文/语法和标准库/4_表达式/4_1_运算符.md

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,31 @@ C 中的 `=` 表示**赋值**
2020

2121
### 2.2.3 一元 `+` 和一元 `-`
2222

23+
#### 2.2.3.1 一元 `-`
24+
25+
可以改变一个数的符号。
26+
2327
### 2.2.4 加法类运算符 `+` `-`
2428

2529
### 2.2.5 乘法类运算符 `*` `/` `%`
2630

31+
#### 2.2.5.1 乘法 `*`
32+
33+
`*` 是一个二元运算符,用于计算乘法。
34+
35+
#### 2.2.5.2 除法 `/`
36+
37+
1. 整数除以整数,结果为整数,向零取整:
38+
39+
```c
40+
int a = 6 / 3; // a = 2
41+
int b = 5 / 3; // b = 1
42+
int c = -6 / 2; // c = -3
43+
int d = -5 / 2; // d = -2
44+
```
45+
46+
#### 2.2.5.3 取余 `%`
47+
2748
1. 整数 ÷ 整数 => 商 …… 余数
2849
对于上面的式子,`/` 得到商,`%` 得到余数
2950

@@ -41,25 +62,32 @@ C 中的 `=` 表示**赋值**
4162

4263
### 2.2.10 `sizeof` 运算符
4364

44-
### 2.2.11 `_AlignOf`运算符
65+
### 2.2.11 `_AlignOf` 运算符
4566

46-
### 2.2.12 逗号运算符
67+
### 2.2.12 逗号运算符 `,`
4768

48-
### 2.2.13 成员访问运算符
69+
### 2.2.13 成员访问运算符 `->` `.`
4970

50-
### 2.2.14 函数调用运算符
71+
### 2.2.14 函数调用运算符 `()`
5172

5273
### 2.2.15 转型运算符
5374

54-
> `2.2.1` `2.2.7` 合称 **赋值运算符**
55-
> `2.2.3` `2.2.4` `2.2.5` `2.2.6` 合称 **算术运算符**
56-
> `2.2.9` `2.2.10` `2.2.11` `2.2.12` `2.2.14` `2.2.15` 被归类为 **其他运算符**
75+
> `2.2.1` `2.2.7` 合称**赋值运算符**
76+
> `2.2.3` `2.2.4` `2.2.5` `2.2.6` 合称**算术运算符**
77+
> `2.2.9` `2.2.10` `2.2.11` `2.2.12` `2.2.14` `2.2.15` ~~似乎可以叫做“其他运算符~~
5778
5879
## 3. 结合性
5980

6081
1. 当多个优先级相同的运算符作用于同一个操作数,需要有规则决定计算的顺序
61-
2. 举例:`a+b+c` 中,先计算 `a+b`
62-
3. 当运算没有结合律(如减法),或有副作用(如赋值),结合性的定义很有必要
82+
2. 举例:`a + b + c` 中,由于加法具有左结合性,所以操作数 `b` 属于左边的 `+`。把这个表达式用树形表示就是:
83+
84+
```mermaid
85+
graph TD;
86+
add1("\+") --> add2("\+");
87+
add1("\+") --> c;
88+
add2("\+") --> a;
89+
add2("\+") --> b;
90+
```
6391

6492
## 4. 优先级
6593

docs/教程/正文/语法和标准库/6_函数.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,7 @@ int main(void){
101101
```txt
102102
10.9 + 8.9 = 19.8
103103
```
104+
105+
## 习题
106+
107+
1. 编写函数 `void fill_area(char ch, int width, int height)`,实现功能:打印 `ch` 字符 `height``width` 列。

docs/教程/正文/语法和标准库/9_声明.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
总结一下前几章讲的各种声明,并且进行混合使用
44

5-
## 1. 声明由三部分构成:属性说明符序列,说明符与限定符,声明符与初始化器
5+
## 1. 声明的构成
6+
7+
- 属性说明符序列
8+
- 说明符与限定符
9+
- 声明符与初始化器
610

711
### 1.1 说明符与限定符
812

0 commit comments

Comments
 (0)