四季

Seasons

一、什么是 namespace

1.1 C语言标识符作用域的缺陷

 在C语言中因为项目需要会定义各种全局变量、函数等,我们也会调用C语言标准库提供给我们的各种函数,这将会导致我们变量名、函数名与标准库中的发生命名冲突。

Read more »

前言:冒泡排序与快速排序都属于交换排序,它们排序的思想是:根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部(前部)移动,键值较小的记录向序列的前部(尾部)移动

注意:下文中所有排序都是升序

一、冒泡排序

 冒泡排序思想:比较相邻的元素。如果第一个比第二个大,就交换它们。从第一组比较到最后一组相邻元素,此时最后一个元素是最大的元素。除去最后一个元素,将剩下n-1个元素重复上面步骤,直到只剩下一个元素为止

Read more »

前言:简单选择排序与堆排序都属于选择排序,它们排序的思想是:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置。然后再从剩余的未排序元素中寻找到最小(大)元素,放到已排序的序列的末尾,直到全部待排序的数据元素排完

注意:下文中所有排序都是升序

一、简单选择排序

 简单选择排序思想:在待排序序列中选择关键码最小(大)的数据元素,若它不是序列中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换,重复上面步骤,直到序列只有1个元素为止。

Read more »

直接插入排序与希尔排序)
前言:直接插入排序与希尔排序都属于插入排序,它们排序的思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止得到一个新的有序序列
在这里插入图片描述

Read more »

一、单链表定义

 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
根据第一个节点是否存放数据:分为带头节点(带哨兵位)的单链表与不带头节点(不带哨兵位)的单链表两种

Read more »

一、线性表

线性结构是指结构中的数据元素之间存在着一对一的关系。线性结构的基本特征如下:

 ●有且只有一个“第一元素”;有且只有一个“最后元素”;
 ●除第一元素之外,其他元素都有唯一的直接前趋;.
 ●除最后元素之外,其他元素都有唯一的直接后继。

线性表是一种常用的、简单的数据结构,属于线性结构的范畴

Read more »

 编译C程序涉及很多步骤,第1个步骤就是预编译(预处理)阶段,预编译是在源代码编译之前做一些文本性质的操作。包括删除注释、执行预处理指令。为了观察预编译阶段所做的事,环境使用Linux系统下的GCC编译器
程序编译完整步骤可以查看这篇博客:https://blog.csdn.net/kjl167/article/details/124157077

一、 预定义符号

ANSI C定义了一些预定义符号,它们表示不同含义
__FILE__ :进行编译的源文件名
__LINE__ :文件当前行号
__DATE__ :文件被编译日期
__TIME__ :文件被编译时间
__STDC__ :如果编译器遵循ANSI C 其值为1,否则未定义

Read more »

一、 程序的环境

在ANSI C的任何一种实现中,存在两种不同环境第1种是翻译环境,在这个环境中源代码文件被转换为可执行的机器指令(二进制代码)。第2种是执行环境(运行环境),它用于实际执行代码。标准规定,这两种环境可以不在同一台计算机上,即可以在计算机A中编译程序,在计算机B中执行程序。

Read more »

一、文件

1.1 什么是文件

 磁盘文件在DOS管理中被定义为存贮在外部介质上的程序或数据的集合,是一批逻辑上有联系的数据。每个文件都有个文件名作为标识,每个文件在磁盘中的具体存放位置、格式都由操作系统中的文件系统管理,也就是说,操作系统是以文件为单位对程序或数据进行管理的。
 在C语言中文件的含义更为广泛,不仅包含以上所述的磁盘文件,还包括一切能进行输入/输出的终端设备,它们被看成是设备文件。如键盘常称为标准输入文件,显示器称为标准输出文件。即在C语言中文件是由磁盘文件和设备文件组成的,磁盘文件根据功能又分为程序文件和数据文件

Read more »

一、 errno 是什么

C语言提供了许多库函数方便我们使用。当一个库函数执行失败时候,可以查看errno对应的错误信息了解库函数执行失败准确原因
errno:错误代码,一个int类型变量,在<errno.h>中定义,每个错误代码值对应一个错误信息字符串,任何库函数都可以将其值修改为不同于零的某个值,通常用于指示特定类别的错误信息

注意:只有当一个库函数执行失败时,才会设置errno。当库函数成功执行时,errno的值不会被修改。这意味我们不能通过测试errno的值判断是否有错误发生,而只有库函数执行失败时检查errno的值才有意义

Read more »
0%