跳转至

C语言教程

『C语言教程』7. 文件

T20:50:00+08:00

〇、引入

假如有一个函数 void printValue() ,怎么在这个函数中访问到外部的一个变量呢? 我们使通过一个指针变量来访问的:

C
1
2
3
void printValue(int *x) {
    printf("%d\n", *x);
}

在调用此函数并传入变量地址作为参数时,在函数内部即可通过指针 x 来访问到对应的变量。

文件也是如此,在程序外部有一个文件,我们也可以通过一个类似的 FILE* 型指针变量来访问到文件。

『C语言教程』5. 指针

T18:42:00+08:00

指针是一种特殊的变量类型,有 int* double* 等类型。

声明指针变量:

C
int *a; // 声明一个 int 的指针变量,名为 a

int* aint * a 都可,随意空格

『C语言教程』6. 数组与字符串

T18:50:00+08:00

一、数组

数组,顾名思义。,一坨数。

一个某数据类型的数组可以存储多个该种数据类型的数据,下标从0开始。

「C语言」数组与字符串_数组

上图:普通 int 变量、一维 int 数组、二维 int 数组......

一些概念:

  • 元素 :对于数组 aa[1] 为数组的一个元素

  • 下标 :数学中 \(a_i\)\(i\),这里为数组元素 a[i]i

『C语言教程』1. 变量、输入输出

T09:02:00+08:00

一、输出

使用 printf("xxx") 来输出 xxx,比如打印 "Hello World":

C
printf("Hello World");

1. 转义字符(Escape character)

\ 符号会把其后的一个字符 转义 为特殊含义: - \t 制表符(tab) - \n 换行符LF 光标移到下一行开头 - \r 回车符CR 光标移到本行开头

Windows 下常说的换行为 \r\n,而 Linux 为 \n

『C语言教程』3. 循环结构

T09:04:00+08:00 「计算机最擅长的事情,就是重复」

一、while 和 do while

假如想要计算机在满足某一条件时反复执行一段逻辑,那么就需要用到循环。

我们在平常生活中的表述大概是:「只要 没课,就一直 睡觉」,对应 C 语言的语句就是 while 语句。

C
while (<条件>) <语句>

while (<条件>)
    <语句>

while (<条件>) {
    <语句块内的语句>
    <语句块内的语句>
    <语句块内的语句>
}

『C语言教程』0. 踏入C的大门

T10:59:00+08:00

一、C语言 -> 程序

C语言 是一门 高级语言编译型语言, 故需要借助 编译器 来将 C语言代码 转换为 二进制机器码 —— 程序

有关编程语言:[[../../「计算机基础」/『计算机基础』编程语言 与 程序]] 有关进制:[[../../「计算机基础」/『计算机基础』进制]]

1. GCC

GCC(GNU Compiler Collection) 是包含于 GNU计划 的一套编译器,支持多种语言与多种硬件平台。

有关 GNU:[[../../「计算机基础」/『计算机基础』操作系统]]

GCC 编译 C语言 的过程:

flowchart LR
    subgraph 源代码
        A[main.c]
        a[utils.c]
        p1[...]
    end

    A --预处理 -E--> B[main.i]
    a --预处理 -E--> b[utils.i]

    subgraph 汇编代码
        C[main.s]
        c[utils.s]
        p2[...]
    end

    B --编译 -S--> C
    b --编译 -S--> c

    subgraph 机器码
        D[main.o]
        d[utils.o]
        p3[...]
    end

    C --汇编 -c--> D
    c --汇编 -c--> d
    机器码 --链接--> 可执行程序
    可执行程序 --> z([运行])