Skip to content

Commit 7e30961

Browse files
author
xuchuanren
committed
update c part
1 parent 0a16ad4 commit 7e30961

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

C入门/1.C语言简介(一).md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@
3232

3333
不同高级语言的语法及命令格式都不相同,所以将其转换为目标代码(机器语言)的方式也不一样,每种高级语言都有对应的编译器。比如,常用的C语言编译器(C compiler)有 Turb C、gcc、C-Free、Borland C++、Microsoft Visual C++ 等。
3434

35+
36+
把高级语言翻译成机器语言的过程称为“编译”​。对C程序来说,先要通过“编译程序”将源程序翻译成二进制形式的“目标程序”​,然后再通过“链接程序”将该目标程序与系统的库函数及其他目标程序链接起来,形成可执行目标程序。
37+
38+
![](https://raw.githubusercontent.com/CharonChui/Pictures/master/c_progress.png)
39+
40+
3541
## C语言
3642

3743
C语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发UNIX操作系统而设计的。C语言最开始是于1972年在DEC PDP-11计算机上被首次实现。

C入门/2.指针(二).md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
2.指针(二)
22
===
33

4+
在计算机中,内存是以字节为单位的连续存储空间,每一个字节都有一个编号,这个编号称为地址。
5+
6+
由于内存的存储空间是连续的,因此地址也是连续的。
7+
8+
这就像教学楼中的每个教室都有编号一样。在地址所标志的内存单元中存放数据,这相当于教室中的学生一样。
9+
10+
系统为变量分配内存单元地址,地址是一个无符号的整型数。
11+
12+
413
一般把内存中的一个字节称为一个内存单元。
514

615
为了正确的访问这些内存单元,必须为每个内存单元编上号,根据一个内存单元的编号即可准确的找到该内存单元。 内存单元的编号也叫做地址,通常把这个地址称为指针。
716

817
如果在程序中定义了一个变量,在对程序进行编译或运行时,系统就会给这个变量分配内存单元,并确定它的内存地址(编号)。
918

19+
20+
一个变量的内存地址称为该变量的指针。
21+
如果一个变量用来存储指针,则称该变量为指针类型的变量(一般称为指针变量)。
22+
1023
变量的地址就是变量的指针,存放变量地址的变量就是指针变量。
1124

1225

@@ -357,6 +370,14 @@ if (q - p == 1) {
357370

358371
## 函数指针
359372

373+
374+
函数是C程序的基本模块,在编译C程序时,系统会为每一个函数分内存单元,函数既然占有内存单元,那么函数也是有地址的,这个地址称为函数的入口地址。
375+
376+
377+
编写的源程序经过编译以后,其中的函数将编译成一段程序并存放在内存中,该函数有一个入口地址,调用函数时,将转向这个入口地址继续执行这里的函数,直到遇到返回语句,结束函数的调用。
378+
379+
函数的入口地址称为函数的指针。同数组名代表数组的地址相似,函数名也代表函数的入口地址。
380+
360381
函数指针是指向函数的指针变量。
361382

362383
函数指针可以像函数一样,用于调用函数、传递参数。
@@ -442,8 +463,15 @@ int main(void) {
442463
443464
## 数组指针
444465
466+
467+
一个变量有地址,一个数组同样有地址。不同的是,一个数组包含有若干个元素,每个元素都要占据内存空间,且数组占据的内存空间也是连续的。指针变量既然可以指向变量,也可以指向数组。因此,在引用数组元素的时候,可以用下标法(如a[6]​)​,也可以使用指针法,即通过指向数组元素的指针找到所需的元素。使用指针法能够使目标程序质量高:占内存少,运行速度高。
468+
469+
445470
指针和数组之间的关系十分密切。通过数组下标能完成的任何操作都可以通过指针来实现。一般来说,用指针编写的程序比用数组下标编写的程序执行速度快。
446471
472+
473+
474+
447475
```c
448476
int a[] = {3, 0, 3, 4, 1};
449477
int *p = &a[0];// 数组第一个元素的指针

0 commit comments

Comments
 (0)