随笔分类 -  C语言

摘要:执行程序时,可以从命令行传值给 C 程序。这些值被称为命令行参数,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。 在 C 语言中,命令行参数是一种从命令行获取输入的方法,可以用于运行程序时传递信息给程序。命令行参数通过 main 函数的参数传递给 阅读全文
posted @ 2025-04-13 14:43 little小新 阅读(55) 评论(0) 推荐(0)
摘要:本章将讲解 C 中的动态内存管理。C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 在 C 语言中,内存是通过指针变量来管理的。指针是一个变量,它存储了一个内存地址,这个内存地址可以指向任何数据类型的变量,包括整数、浮点数、字符和数组等。C 语言提供了一 阅读全文
posted @ 2025-04-13 14:00 little小新 阅读(36) 评论(0) 推荐(0)
摘要:有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。 C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。 声明方式为: int func_name(int arg1, ...); 其中,省略号 ... 表示可变参数列表 如 阅读全文
posted @ 2025-04-13 13:37 little小新 阅读(30) 评论(0) 推荐(0)
摘要:1.概念 递归指的是在函数的定义中使用函数自身的方法。 举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢! 故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢 阅读全文
posted @ 2025-04-10 21:46 little小新 阅读(31) 评论(0) 推荐(0)
摘要:C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno.h 头文件中找到各 阅读全文
posted @ 2025-04-10 21:37 little小新 阅读(35) 评论(0) 推荐(0)
摘要:强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示: (type_name) expression 使用强制类 阅读全文
posted @ 2025-04-08 22:01 little小新 阅读(52) 评论(0) 推荐(0)
摘要:1.概念 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。 在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它。前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件。 阅读全文
posted @ 2025-04-08 21:54 little小新 阅读(184) 评论(0) 推荐(0)
摘要:C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。 所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符 阅读全文
posted @ 2025-04-07 22:11 little小新 阅读(89) 评论(0) 推荐(0)
摘要:一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。 C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。 1.打开文件 可以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE 阅读全文
posted @ 2025-04-07 21:35 little小新 阅读(143) 评论(0) 推荐(0)
摘要:当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。 当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到 阅读全文
posted @ 2025-03-29 16:01 little小新 阅读(59) 评论(0) 推荐(0)
摘要:1.概念 C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE: typedef unsigned char BYTE; 或 typedef unsigned char byte; 在这个类型定义之后,标识符 BYTE 可作为类型 阅读全文
posted @ 2025-03-29 15:13 little小新 阅读(26) 评论(0) 推荐(0)
摘要:1.概念 C 语言的位域(bit-field)是一种特殊的结构体成员,允许我们按位对成员进行定义,指定其占用的位数。 位域允许我们将多个变量打包到一个整数内存单元中,通过指定变量占用的位数来节省空间。 如果程序的结构中包含多个开关的变量,即变量值为 TRUE/FALSE,如下: struct { u 阅读全文
posted @ 2025-03-28 22:25 little小新 阅读(200) 评论(0) 推荐(0)
摘要:1.概念 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。 您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。 共用体提供了一种使用相同的内存位置的有效方式。 2.定义共用体 为了定义共用体,您必须使用 union 语句,方式与定义结构类似。union 语句定 阅读全文
posted @ 2025-03-27 22:06 little小新 阅读(82) 评论(0) 推荐(0)
摘要:C 数组允许定义可存储相同类型数据项的变量,结构体是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。 结构体中的数据成员可以是基本数据类型(如 int、float、char 等),也可以是其他结构体类型、指针类型等。 结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态 阅读全文
posted @ 2025-03-27 00:43 little小新 阅读(294) 评论(1) 推荐(0)
摘要:int *arr = malloc(100 * sizeof(int)); malloc:内存分配函数(Memory ALLOCation) 100 * sizeof(int):计算需要的内存大小 int *arr:声明一个整型指针接收分配的内存地址 逐步解析 (1)sizeof(int):计算一个 阅读全文
posted @ 2025-03-26 23:42 little小新 阅读(187) 评论(0) 推荐(0)
摘要:一、基础概念:变量和内存 先我们需要明白,计算机中的每个变量都存储在内存的某个位置。 就像酒店里每个房间都有房间号一样,内存中的每个位置也有自己的"房间号" - 这就是内存地址。 普通变量 int age = 25; 在内存中分配一个"房间" - int类型(通常是4字节大小) 房间号(地址)- 0 阅读全文
posted @ 2025-03-26 23:17 little小新 阅读(68) 评论(0) 推荐(0)
摘要:在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。 空字符(Null character)又称结束符,缩写 NUL,是一个数值为 0 的控制字符,\0 是转义字符,意思是告诉编译器,这不是字符 0,而是空字符。 下面的声明和初始化创建了一个 RU 阅读全文
posted @ 2025-03-26 22:17 little小新 阅读(50) 评论(0) 推荐(0)
摘要:1.函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针类型的声明: typedef int (*fun_ptr)(int,int); //声明一个指向同样参数、返回值 阅读全文
posted @ 2025-03-26 21:47 little小新 阅读(35) 评论(0) 推荐(0)
摘要:正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。 请看下面的实例,它将输出定义的变量地址: #include <stdio.h> int main(){ int var_runoob = 10; int *p; //定义指针 阅读全文
posted @ 2025-03-24 21:33 little小新 阅读(19) 评论(0) 推荐(0)
摘要:概念 枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。 枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。 定义一个枚举类型,需要使用 enum 关键字,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一组枚举常量。 每个 阅读全文
posted @ 2025-03-24 15:40 little小新 阅读(79) 评论(0) 推荐(0)