
C语言
文章平均质量分 78
成长之路514
资源如果失效或者不对版的请私信我看到会第一时间补发! 所有源码仅供下载学习交流,如需商用请支持正版 文章发布所有内容均采自互联网,如有侵权私信联系删除。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言函数指针与回调函数
函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数一样,用于调用函数、传递参数。函数指针变量的声明:// 声明一个指向同样参数、返回值的函数指针类型。原创 2024-01-30 08:15:00 · 1074 阅读 · 0 评论 -
C语言字符串
在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。)又称结束符,缩写 NUL,是一个数值为 0 的控制字符,\0 是转义字符,意思是告诉编译器,这不是字符 0,而是空字符。下面的声明和初始化创建了一个字符串。由于在数组的末尾存储了空字符 \0,所以字符数组的大小比单词的字符数多一个。依据数组初始化规则,您可以把上面的语句写成以下语句:以下是 C/C++ 中定义的字符串的内存表示:其实,您不需要把 null 字符放在字符串常量的末尾。原创 2024-01-30 08:30:00 · 802 阅读 · 0 评论 -
C语言结构体
结构体定义由关键字 struct 和结构体名组成,结构体名可以根据需要自行定义。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:...tag是结构体标签。是标准的变量定义,比如 int i;或者 float f;,或者其他有效的变量定义。结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。下面是声明 Book 结构的方式:} book;在一般情况下,这 3 部分至少要出现 2 个。原创 2024-01-29 07:58:29 · 1094 阅读 · 0 评论 -
C语言共用体
为了定义共用体,您必须使用union语句,方式与定义结构类似。union 语句定义了一个新的数据类型,带有多个成员。union 语句的格式如下:union tag是可选的,每个 member definition 是标准的变量定义,比如 int i;或者 float f;或者其他有效的变量定义。在共用体定义的末尾,最后一个分号之前,您可以指定一个或多个共用体变量,这是可选的。下面定义一个名为 Data 的共用体类型,有三个成员 i、f 和 str:float f;} data;现在,Data。原创 2024-01-29 07:58:12 · 893 阅读 · 0 评论 -
C语言位域
位域定义与结构定义相仿,其形式为:struct 位域结构名位域列表其中位域列表的形式为:元素描述type只能为 int(整型),unsigned int(无符号整型),signed int(有符号整型) 三种类型,决定了如何解释位域的值。位域的名称。width位域中位的数量。宽度必须小于或等于指定类型的位宽度。带有预定义宽度的变量被称为位域。位域可以存储多于 1 位的数,例如,需要一个变量来存储从 0 到 7 的值,您可以定义一个宽度为 3 位的位域,如下:} Age;原创 2024-01-27 08:45:00 · 1850 阅读 · 0 评论 -
C typedef
C 语言提供了关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语在这个类型定义之后,标识符 BYTE 可作为类型的缩写,例如:按照惯例,定义时会大写字母,以便提醒用户类型名称是一个象征性的缩写,但您也可以使用小写字母,如下:您也可以使用来为用户自定义的数据类型取一个新的名字。原创 2024-01-27 07:00:00 · 470 阅读 · 0 评论 -
C 输入 & 输出
当我们提到时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。当我们提到时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中。原创 2024-01-26 08:15:00 · 800 阅读 · 0 评论 -
C 文件读写
上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。本章将讲解文件管理的重要调用。原创 2024-01-26 08:15:00 · 795 阅读 · 0 评论 -
C 预处理器
ANSI C 定义了许多宏。在编程中您可以使用这些宏,但是不能直接修改这些预定义的宏。宏描述__DATE__当前日期,一个以 "MMM DD YYYY" 格式表示的字符常量。__TIME__当前时间,一个以 "HH:MM:SS" 格式表示的字符常量。__FILE__这会包含当前文件名,一个字符串常量。__LINE__这会包含当前行号,一个十进制常量。__STDC__当编译器以 ANSI 标准编译时,则定义为 1。原创 2024-01-25 07:00:00 · 1140 阅读 · 0 评论 -
C 头文件
头文件是扩展名为的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件,需要使用 C 预处理指令来引用它。前面我们已经看过头文件,它是编译器自带的头文件。引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候。原创 2024-01-25 04:00:00 · 353 阅读 · 0 评论 -
C 强制类型转换
强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。原创 2024-01-24 07:45:00 · 409 阅读 · 0 评论 -
C 错误处理
C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno.h 头文件中找到各种各样的错误代码。所以,C 程序员可以通过检查返回值,然后根据返回值决定采取哪种适当的动作。开发人员应该在程序初始化时,把 errno 设置为 0,这是一种良好的编程习惯。0 值表示程序中没有错误。原创 2024-01-24 05:15:00 · 394 阅读 · 0 评论 -
C语言递归
递归指的是在函数的定义中使用函数自身的方法。举个例子:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……'"流程图:C 语言支持递归,即一个函数可以调用其自身。但在使用递归时,程序员需要注意定义一个从函数退出的条件,否则会进入死循环。原创 2024-01-23 07:30:00 · 721 阅读 · 0 评论 -
C语言可变参数
时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。声明方式为:其中,省略号 ... 表示可变参数列表。下面的实例演示了这种函数的使用:请注意,函数最后一个参数写成省略号,即三个点号(),省略号之前的那个参数是,代表了要传递的可变参数的总数。为了使用这个功能,您需要使用头文件,该文件提供了实现可变参数功能的函数和宏。:初始化可变参数列表。ap是一个va_list。原创 2024-01-23 07:00:00 · 431 阅读 · 0 评论 -
C语言内存管理
本章将讲解 C 中的动态内存管理。C 语言为内存的分配和管理提供了几个函数。这些函数可以在头文件中找到。在 C 语言中,内存是通过指针变量来管理的。指针是一个变量,它存储了一个内存地址,这个内存地址可以指向任何数据类型的变量,包括整数、浮点数、字符和数组等。C 语言提供了一些函数和运算符,使得程序员可以对内存进行操作,包括分配、释放、移动和复制等。void * 类型表示未确定类型的指针。C、C++ 规定 void * 类型可以通过类型转换强制转换为任何其它类型的指针。原创 2024-01-22 07:00:00 · 1786 阅读 · 0 评论 -
C语言命令行参数
多个命令行参数之间用空格分隔,但是如果参数本身带有空格,那么传递参数的时候应把参数放置在双引号 "" 或单引号 '' 内部。让我们重新编写上面的实例,有一个空间,那么你可以通过这样的观点,把它们放在双引号或单引号""""。是一个指向第一个命令行参数的指针,*argv[n] 是最后一个参数。如果没有提供任何参数,argc 将为 1,否则,如果传递了一个参数,是一个指针数组,指向传递给程序的每个参数。,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。原创 2024-01-22 06:00:00 · 495 阅读 · 0 评论 -
C 排序算法
插入排序在实现上,通常采用in-place排序(即只需用到 {\displaystyle O(1)} {\displaystyle O(1)}的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。在区间中随机挑选一个元素作基准,将小于基准的元素放在基准之前,大于基准的元素放在基准之后,再分别对小数区与大数区进行排序。挪位,为最新元素提供插入空间。原创 2024-01-21 17:00:00 · 468 阅读 · 0 评论 -
C 矩阵交换行
第 6 行包含两个整数 m、n,以一个空格分开。(1 <= m,n <= 5)输出输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。的矩阵(数学上,一个 r×c 的矩阵是一个由 r 行 c 列元素排列成的矩形阵列),将第 n 行和第 m 行交换,输出交换后的结果。输入输入共 6 行,前 5 行为矩阵的每一行元素, 元素与元素之间以一个空格分开。原创 2024-01-21 18:00:00 · 788 阅读 · 0 评论 -
C enum(枚举)
前面我们只是声明了枚举类型,接下来我们看看如何定义枚举变量。我们可以通过以下三种方式来定义枚举变量1、先定义枚举类型,再定义枚举变量enum DAY2、定义枚举类型的同时定义枚举变量enum DAY} day;3、省略枚举名称,直接定义枚举变量enum} day;原创 2024-01-20 10:00:00 · 970 阅读 · 0 评论 -
C语言数组
C 语言支持数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,比如 runoob0、runoob1、...、runoob99,而是声明一个数组变量,比如 runoob,然后使用 runoob[0]、runoob[1]、...、runoob[99] 来代表一个个单独的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。原创 2024-01-19 06:30:00 · 1028 阅读 · 0 评论 -
C 作用域规则
任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。让我们来看看什么是变量、变量和参数。原创 2024-01-19 07:00:00 · 861 阅读 · 0 评论 -
C语言函数
C 语言中的函数定义的一般形式如下:在 C 语言中,函数由一个函数头和一个函数主体组成。一个函数可以返回一个值。是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字void。这是函数的实际名称。函数名和参数列表一起构成了函数签名。参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。函数主体包含一组定义函数执行任务的语句。原创 2024-01-18 08:00:00 · 796 阅读 · 0 评论 -
C语言循环
有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了更为复杂执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图:循环类型C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。循环类型 描述 while 循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 for 循环 多次执行一个语句原创 2024-01-18 06:45:00 · 387 阅读 · 0 评论 -
C 数据类型
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。void数组类型和结构类型统称为聚合类型。函数的类型指的是函数返回值的类型。在本章节接下来的部分我们将介绍基本类型,其他几种类型会在后边几个章节中进行讲解。原创 2024-01-15 06:30:00 · 814 阅读 · 0 评论 -
C语言环境设置
如果您使用的是 Mac OS X,最快捷的获取 GCC 的方法是从苹果的网站上下载 Xcode 开发环境,并按照安装说明进行安装。以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。当安装 MinGW 时,您至少要安装 gcc-core、gcc-g++、binutils 和 MinGW runtime,但是一般情况下都会安装更多其他的项。最常用的免费可用的编译器是 GNU 的 C/C++ 编译器,如果您使用的是 HP 或 Solaris,则可以使用各自操作系统上的编译器。原创 2024-01-14 17:10:33 · 892 阅读 · 0 评论