[编程开发] C语言学习笔记

[复制链接]
作别西天 发表于 2023-10-3 19:51:39|来自:北京海淀 | 显示全部楼层 |阅读模式
子曰:114514,逸一时误一世
本人目前是北航 23级信息类新生,为了防止自己在大学期间长期摆烂,于是决定把自己学习 C 语言的课堂笔记以及学习心得传到知乎上,以此监督自己好好学习,同时也希望对像我一样的 C语言初学者有帮助
<hr/>第一节课(上)
1. 一些扫盲
【1】编辑 编译 运行
编辑就是你敲代码的过程
编译就把你写的程序转化成计算机能看懂的话,并检验是否有语法错误
运行就是让你写的程序运作起来
举例说明:你用中文写一封信想让外国人读懂,编辑就是你用中文写信,编译就是有道把你写的翻译成英文并检查你是否犯了语法错误,执行就是外国人读到了你写的信的英文翻译(达成了某种效果)
但是注意⚠️编译成功不意味着得到你想要的结果,因为很有可能你一开始代码就写错了,就像你可以不犯语法错误但是一开始就写错了一样(写跑题了)
【2】关于 #include 、stdio.h 、头文件、int main
与return 0

首先放出详细介绍:
       `#include ` 是 C 语言(以及 C++)中的一个预处理指令,它用于包含(或插入)指定头文件的内容到程序中。当编译器遇到 `#include ` 指令时,它会找到指定的头文件,并把它的内容复制到 `#include ` 指令所在的位置。
`#include ` 指令通常用于两种方式:
1. `#include <文件名>`:这种格式用于包含标准库的头文件。例如,`#include <stdio.h>` 会包含标准输入/输出头文件,它提供了如 `printf` 和 `scanf` 等基本的输入/输出函数。
  
2. `#include &#34;文件名&#34;`:这种格式用于包含用户定义的头文件或者非标准库的头文件。例如,`#include &#34;my_header.h&#34;` 会包含名为 `my_header.h` 的头文件。
通过 `#include ` 指令,你可以组织你的代码,将函数声明、宏定义和其他信息放在头文件中,使主程序文件保持整洁,同时促进模块化编程。

  `stdio.h` 是 C 语言标准库中的一个头文件,名称代表 &#34;Standard Input/Output Header&#34;(标准输入/输出头文件)。它提供了一套用于输入和输出的函数、宏和类型定义。

以下是 `stdio.h` 中定义的一些重要的内容:

1. **输入/输出函数**:
   - `printf`:用于格式化输出。
   - `scanf`:用于格式化输入。
   - `putchar`:输出单个字符。
   - `getchar`:输入单个字符。
   - `puts`:输出字符串并换行。
   - `gets`:输入字符串(注意:`gets` 函数是不安全的,应避免使用)。

2. **文件操作函数**:
   - `fopen`:打开文件。
   - `fclose`:关闭文件。
   - `fprintf`:向文件进行格式化输出。
   - `fscanf`:从文件进行格式化输入。
   - `fread`:从文件读取数据。
   - `fwrite`:向文件写入数据。

3. **缓冲区操作函数**:
   - `setbuf`:设置文件的缓冲区。
   - `setvbuf`:设置文件的缓冲区,并允许更多选项。
   - `fflush`:刷新文件的缓冲区。

4. **错误处理函数**:
   - `perror`:打印错误消息。
   - `clearerr`:清除文件错误标志。

5. **宏和类型**:
   - `FILE`:文件类型,用于表示文件流。
   - `EOF`:表示文件末尾。

`stdio.h` 是 C 语言编程中非常基础和重要的头文件,几乎所有的 C 语言程序都会包含这个头文件,以便能够执行基本的输入和输出操作。
头文件,通常以 `.h` 结尾(例如 `stdio.h`),在 C 或 C++ 编程中是一种特殊类型的文件,主要用于存放函数声明、宏定义、类型定义和其他的一些编译指令。

头文件的主要目的是提供一个接口,使得源文件可以访问其所需的声明或定义,而无需知道这些声明或定义的具体实现。这有助于将程序模块化,使得代码更容易维护和理解。

以下是头文件的一些常见用途:

1. **函数声明**:头文件可以包含一个或多个函数的声明,这样其他的源文件就可以知道如何调用这些函数,而无需知道它们的具体实现。
2. **宏定义**:头文件中可以定义宏,这些宏可以在多个源文件中使用,而无需重复定义。
3. **类型定义**:如果你创建了自定义的数据类型,你可以在头文件中声明这些类型,以便在多个源文件中使用。
4. **全局变量的外部声明**:如果你在一个源文件中定义了全局变量,并且想让其他源文件能够访问它,你可以在头文件中使用 `extern` 关键字来声明这个变量。
5. **包含其他头文件**:头文件可以包含其他头文件,这样你可以组织和管理相关的声明和定义,使得代码结构清晰。

头文件通常通过 `#include#` 指令被包含到源文件中。在创建头文件时,通常需要确保头文件的内容是幂等的,即多次包含头文件不会产生错误或不期望的行为。这通常通过使用预处理指令 `#ifndef#` 和 `#DeFine#` 来实现,创建所谓的包含保护。
  `int main()` 是 C 语言程序的入口点,也就是程序开始执行的地方。在这个表达式中:

- `int` 是 `main` 函数的返回类型,表示该函数将返回一个整数值,通常用于表示程序的退出状态。在大多数系统中,返回 0 表示程序成功执行,而非零值表示出现错误。
- `main` 是函数的名称,它是一个特殊的函数,由系统调用以启动程序。
- `()` 是函数参数的列表。在这种情况下,它是空的,表示 `main` 函数不接受任何参数。不过,也可以通过 `int main(int argc, char *argv[])` 的形式来接收命令行参数,其中 `argc` 是命令行参数的数量,`argv` 是参数值的数组。

在 `main` 函数的花括号 `{}` 内,你会写下程序的指令,这些指令按照从上到下的顺序执行。
在 C 语言(以及很多其他编程语言)中,`return 0;` 是一个语句,通常出现在程序的 `main` 函数的末尾,用于表示程序已经成功完成。
这里是具体的解释:
1. **`return` 关键字**:`return` 是一个用于从函数返回值的关键字。它会结束当前函数的执行,并将控制权返回给调用该函数的代码。
2. **`0`**:`0` 是返回的值。在 `main` 函数中,返回 `0` 通常表示程序成功执行。这是一个约定,被大多数操作系统和编程环境采纳。
3. **程序退出状态**:`main` 函数的返回值被用作程序的退出状态。操作系统可以使用这个值来判断程序是否成功运行。通常,返回 `0` 表示成功,而返回非零值表示出现了错误。
下面是精简介绍
1.#include就是引用,用来引用头文件
2.头文件包含很多函数,需先引用再用
3.stdio.h是头文件的一种,也是最重要的的头文件,因为像输出输入这样的重要函数都在里面
4.main()是stdio.h里的一个函数,其作用是启动程序,前面的int是函数返回值的类型(这一点后面讲函数时会讲到)
5.return 0是函数的返回值,意思是程序结束
6.这些代码几乎所有C语言程序都有,理解不了就无脑写上
(未完待续……)
全部回复0 显示全部楼层
暂无回复,精彩从你开始!

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则