
C语言
文章平均质量分 94
时光の尘
这个作者很懒,什么都没留下…
展开
-
C语言菜鸟入门·一文带你从浅入深了解指针
指针从浅入深详解,带你不在了解指针的使用原创 2025-04-07 05:00:00 · 1818 阅读 · 1 评论 -
C语言菜鸟入门·内存管理calloc()函数、free()函数、malloc()函数
在 C 语言中,内存是通过指针变量来管理的。指针是一个变量,它存储了一个内存地址,这个内存地址可以指向任何数据类型的变量,包括整数、浮点数、字符和数组等。C 语言提供了一些函数和运算符,使得程序员可以对内存进行操作,包括分配、释放、移动和复制等。void * 类型表示未确定类型的指针。C、C++ 规定 void * 类型可以通过类型转换强制转换为任何其它类型的指针。原创 2024-12-15 10:35:06 · 697 阅读 · 0 评论 -
C语言菜鸟入门·强制类型转换、整数提升、未定义行为详细介绍
C语言的强制类型转换规则,以及为什么出现未定义行为原创 2024-12-15 10:15:09 · 1157 阅读 · 0 评论 -
C语言菜鸟入门·关键字·const的用法、volatile的用法
在 C 和 C++ 中,const 是一个关键字,用来声明常量或指示某个值不能被修改。通过使用 const,程序员可以确保某个变量、指针或函数的参数在某些条件下不可被修改,从而增强程序的安全性和可维护性。与volatile合称“cv特性”,指定变量不可被当前线程/进程改变。原创 2024-11-26 06:00:00 · 1144 阅读 · 0 评论 -
C语言菜鸟入门·关键字·auto的用法、register的用法
在 C 语言中,register 是一个存储类别关键字,用于提示编译器将某个变量存储在寄存器中,以提高访问速度。寄存器是计算机内部速度最快的存储位置,因此,使用 register 关键字声明的变量访问速度可能会更快。register 仅是对编译器的优化建议,编译器可能会忽略这个建议,特别是当系统有较少的寄存器,或者变量本身的访问频率较低时,编译器可能会选择将该变量存储在内存中,而非寄存器。然而,在 C 语言中,局部变量默认就是自动变量,所以写 auto 是没有必要的,编译器会自动推断。原创 2024-11-26 05:00:00 · 1400 阅读 · 0 评论 -
C语言菜鸟入门·关键字·sizeof的用法
在 C 语言中,sizeof 是一个运算符,用来获取一个数据类型或数据结构在内存中所占的字节数。它是一个编译时运算符,不会在运行时进行计算,而是由编译器在编译时确定大小。sizeof(数据类型)sizeof(任何有效表达式)sizeof会返回该表达式结果的类型大小。原创 2024-11-25 05:00:00 · 3131 阅读 · 0 评论 -
C语言菜鸟入门·printf格式化打印总结(%d、%i、%hd、%zd、%u、%lu、%o、%x、%f、%E、%g、%c、%s等)
C语言printf格式化打印:%d、%i、%hd、%ld、%lld、%zd、%u、%llu、%lu、%o、%ho、%lo、%llo、%x、%hx、%lx、%llx、%X、%hX、%lX、%llX、%f、%lf、%Lf、%e、%E、%Le、%g、%G、%a、%A、%c、%s、%%、%p、%n原创 2024-11-25 06:00:00 · 3336 阅读 · 0 评论 -
C语言菜鸟入门·关键字·union的用法
共用体(union)是一种数据结构,它允许在同一内存位置存储不同的数据类型,但每次只能存储其中一种类型的数据。与结构体不同,结构体中的每个成员都有各自独立的内存空间,而共用体中的所有成员共享同一块内存区域。原创 2024-11-23 05:00:00 · 2240 阅读 · 0 评论 -
C语言菜鸟入门·关键字·修饰关键字short、long、signed、unsigne详细
short 关键字用于声明短整型变量。long 用来声明一个长整型变量,通常在需要比 int 更大范围的整数时使用。signed 用于声明一个变量是“有符号”的,即可以存储正数、负数和零。unsigned 修饰符指定变量为无符号整数,即该变量不能存储负数。原创 2024-11-22 06:00:00 · 1329 阅读 · 0 评论 -
C语言菜鸟入门·关键字·float以及double的用法
float 用于声明单精度浮点数变量,适用于需要表示较小范围浮动数值的场景。通常用于科学计算、物理模拟或财务计算等需要小数的应用。原创 2024-11-22 05:00:00 · 3266 阅读 · 0 评论 -
C语言菜鸟入门·关键字·int的用法
int 是一个关键字,用于声明整数类型的变量。整数是没有小数部分的数字,可以是正数、负数或零。在 C 语言中,int 类型默认是带符号(signed)的,这意味着它可以表示负数、零和正数。原创 2024-11-21 06:00:00 · 1874 阅读 · 0 评论 -
C语言菜鸟入门·关键字·char关键字
char 是用来声明一个字符类型变量的关键字,表示变量可以存储一个字符(通常是一个字节)。在 C 语言中,char 变量的大小通常为 1 字节(8 位),具体大小取决于平台和编译器。原创 2024-11-21 04:00:00 · 1772 阅读 · 0 评论 -
C语言菜鸟入门·关键字·void的用法
在 C 语言中,void 是一个关键字,用于表示“无类型”或“没有值”。原创 2024-11-20 05:00:00 · 3196 阅读 · 0 评论 -
C语言菜鸟入门·枚举类型·enum的使用详解
枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。定义一个枚举类型,需要使用enum关键字,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一组枚举常量。每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增。enum 枚举名 {枚举元素1,枚举元素2,……};enum DAY这样看起来是不是更简洁了。原创 2024-11-16 06:00:00 · 6422 阅读 · 1 评论 -
C语言菜鸟入门·常用排序方法(冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序)
C语言常用的排序法方法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序,详细介绍原创 2024-11-16 05:00:00 · 2095 阅读 · 0 评论 -
C语言菜鸟入门·数据结构·链表超详细解析
对比于顺序表的每个节点只存放数据元素,单链表的每个节点除了存放数据元素外,还要存储指向下一个节点的指针。优点:可随机存储,存储密度较高;缺点:要求大片连续空间,改变容量不方便。优点:不要求大片连续空间,改变容量方便;缺点:不可随机存取,要耗费一定空间存放指针。对于单链表的每一个结点,都需要有一个数据域用于存放节点的数据元素,需要一个指针域用于指向下一个结点。而若是我们想要增加一个新的结点,我们可以使用malloc关键字,例如:首先,我们先声明一个指向。原创 2024-08-06 06:00:00 · 3833 阅读 · 0 评论 -
C语言菜鸟入门·各种typedef用法超详细解析
详细解释了各种typedef的用法,例如数据类型,函数,指针,结构体(typedef struct),共用体(typedef union)以及枚举(typedef enum)等的详细用法解析原创 2024-08-06 04:00:00 · 11834 阅读 · 2 评论 -
C语言指针·高级用法(数组指针)
下面我们来了解一下:数组指针。原创 2024-08-05 06:00:00 · 1323 阅读 · 0 评论 -
C语言指针·高级用法超详解(指针运算、野指针、悬空指针、void类型指针、二级以及多级指针)
因为,指针的加法操作实际上是将指针向后移动若干个存储单元,而不是简单的数学加法,上面我们也提到了正常情况下变量p只能获取到0x01的内存地址,而int型数据占4字节,而p+1就是指针移动一步,一步在这里是四个字节,因此p+1,最终会移动到0x05的位置。但是如果使用void又会出现新的问题就是:void不能获取到变量里面的数据,也不能进行加减的计算,那么要如何解决呢?不表示任何类型,只能记录地址值,不能获取到变量里面的数据,也不能进行加减的计算。既然指针也有他的指针,那么指针的指针要怎么命名呢?原创 2024-08-05 05:00:00 · 1378 阅读 · 7 评论 -
C语言指针·入门用法超详解
通过内存地址,指向的空间,我们可以对空间的数据进行修改,而这个内存地址就被称为指针。在代码当中,我们会拿一个变量将指针进行存起来,那么这个变量就叫做指针变量。通常情况下,我们会将指针变量,称为指针,但我们需要了解,真正的指针,实际上是指针变量存起来的内存地址。指针变量起始就是存着指针的变量,本身也是变量,而我们变量的定义格式是:数据类型 变量名;原创 2024-07-31 09:12:30 · 3709 阅读 · 4 评论 -
C语言菜鸟入门·二维数组
目录编辑1. 二维数组1.1 初始化二维数组1.2 访问二维数组元素1.3 示例演示2. 传递数组给函数2.1 形式参数是一个指针2.2 形式参数是一个已定义大小的数组2.3 形式参数是一个未定义大小的数组2.4 实例演示 C 语言支持多维数组。多维数组声明的一般形式如下: 例如,下面的声明创建了一个三维 5 . 10 . 4 整型数组: 多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。声明一个 x 行原创 2024-02-25 15:35:21 · 1230 阅读 · 0 评论 -
C语言菜鸟入门·数组简介
在 C 语言中,数组是一种用来存储相同类型数据元素的集合。数组提供了一种便捷的方式来管理一系列相同类型的数据,可以按照索引来访问和操作数组中的元素。1、声明数组:在 C 语言中声明数组时,需要指定数组的类型和大小。例如,int arr[5];声明了一个包含 5 个整数元素的数组。2、初始化数组:可以在声明数组的同时初始化数组元素,也可以在之后的代码中逐个赋值。例如,初始化了一个包含 5 个整数元素的数组。3、访问数组元素:可以使用数组下标(从 0 开始)来访问数组中的元素。例如,将数组arr。原创 2024-02-22 04:00:00 · 1502 阅读 · 0 评论 -
C语言菜鸟入门·结构体·struct用法超详细解析
结构体定义由关键字 struct 和结构体名组成,结构体名可以根据需要自行定义。struct 结构体名称 {数据类型 成员1名称;数据类型 成员2名称;...数据类型 成员n名称;} 结构体变量1, 结构体变量2, ... , 结构体变量m;其中,结构体名称是自定义的标识符,用于标识这个特定的结构体类型。成员名称是结构体内部数据项的名称,成员的数据类型可以是整型、浮点型、字符型、指针类型、数组类型等。结构体变量是声明该结构体类型的实例,可以用于存储具体的数据。int width;原创 2024-02-02 15:44:41 · 4121 阅读 · 0 评论 -
C语言菜鸟入门·函数
/ 函数体表示函数返回值的类型,可以是任意合法的数据类型,如果函数不返回数值则用void表示。是函数的名字,用来标识函数。是函数的参数列表,如果函数不需要参数,则在括号内留空。每个参数由参数类型和参数名组成,多个参数之间用逗号分隔。函数体包含了实际的操作逻辑,它由大括号括起来。这个函数名为add,接受两个整型参数a和b,返回值类型为整型。函数体内的操作是将参数a和b相加,并返回结果。综上我们分析出:在 C 语言中,函数由一个函数头和一个函数主体组成。一个函数可以返回一个值。原创 2024-01-31 09:05:06 · 927 阅读 · 2 评论 -
C语言菜鸟入门·判断语句(if语句、if...else语句、嵌套if语句)详细介绍
C 语言把任何和的值假定为,把或假定为。原创 2024-01-30 10:28:09 · 30672 阅读 · 4 评论 -
C语言菜鸟入门·运算符(算数运算符,关系运算符,逻辑运算符,位运算符,赋值运算符,三目运算符)详细介绍
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。原创 2024-01-31 05:00:00 · 15483 阅读 · 1 评论 -
C 变量
在C语言中,变量定义用于告诉编译器如何为特定类型的变量分配存储空间。变量定义通常包括数据类型和一个或多个变量名的列表。type表示变量的数据类型,可以是整型、浮点型、字符型、指针等,也可以是用户自定义的对象。可以由一个或多个变量的名称组成,多个变量之间用逗号,分隔,变量由字母、数字和下划线组成,且以字母或下划线开头。// 定义了三个整型变量a、b、cfloat x, y;// 定义了两个浮点型变量x、ychar ch;// 定义了一个字符型变量ch在上面的示例中,intfloat和char。原创 2024-01-28 09:13:07 · 940 阅读 · 0 评论 -
C数据类型
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。void数组类型和结构类型统称为聚合类型。函数的类型指的是函数返回值的类型。原创 2024-01-28 08:46:17 · 867 阅读 · 0 评论 -
C程序语法和结构
空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。在这里,int 和 age 之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。fruit 和 =,或者 = 和 apples 之间的空格字符不是必需的,但是为了增强可读性,您可以根据需要适当增加一些空格。只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。您不能在注释内嵌套注释,注释也不能出现在字符串或字符值中。以 // 开始的单行注释,这种注释可以单独占一行。原创 2024-01-28 01:00:00 · 998 阅读 · 0 评论 -
C语言简介
C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。原创 2024-01-27 17:16:44 · 1120 阅读 · 0 评论 -
Visual Studio编辑器左侧菜单栏不小心关掉如何打开(左侧解决方案资源管理器不显示如何打开)、C语言中int main和void main的区别以及C工程的创建
通常情况下,返回0表示程序成功执行,非零值表示程序出现错误。虽然上面的代码在一些编译器中可以正常运行,但是为了遵循C语言标准以及兼容性,建议使用。我在这里使用使用C语言,所以命名为.c的形式,创建完后点击添加。是两种不同的函数定义形式,并且它们在一些编译器中可能有不同的行为。可能在某些编译器中被接受,但不符合C语言标准。不符合C语言标准,并且可能导致一些编译器产生警告或错误。更改函数名称,可以按照自己喜好取名,最好使用英文;双击打开,如下图,点击。Visual Studio编辑器。原创 2024-01-26 08:04:41 · 10627 阅读 · 0 评论 -
C语言入门(字符串正反连接(fgets()、gets()用法))
它提供了更安全的方式来读取字符串,因为你可以指定最大读取的字符数,避免缓冲区溢出问题。即:(下面这样是不对的,因为a[ strlen(a) ]原来是' \0', 被放字符后,求出长度不对,并且a的长度在改变)它是一个不安全的函数,因为它无法防止输入的字符串超过目标字符数组的大小,可能导致缓冲区溢出。放在原字符串后面时,要从第lenth-1的位置开始放,直到原字符串第一个字符放入为止;有一种的思路是,循环不是以原字符串第一个字符结束,而是以原字符串长度的两倍-1结束,报错,这是因为在C语言中,原创 2023-12-19 05:00:00 · 1372 阅读 · 4 评论 -
C语言练习(检查一个数是否为质数 、剪绳子)
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象或方法,并规定其他所有情况都能被还原为其基本情况。这样还会出现一个问题,主函数,也会报错,因为缺少类型说明符,可以再main()改为void main()给一段N cm长的绳子,每次剪成相等的两段。原创 2023-12-15 23:30:00 · 1127 阅读 · 0 评论 -
Visual Studio编辑器中C4996 ‘scanf‘: This function or variable may be unsafe.问题解决方案
方案一:将scanf改为scanf_s方案二:在代码最上方方案三:在代码最上方方案四:在代码上方简单来说,编译器看不到错我,我就是对的。原创 2023-12-15 23:00:00 · 2326 阅读 · 14 评论 -
C语言基础介绍
C语言是一种计算机编程语言,是一门用于编写系统软件和应用软件的高级语言。C语言的基础知识包括:数据类型:C语言中的数据类型包括整型、浮点型、字符型等。变量:C语言中使用变量来存储数据,变量必须先声明,再赋值。运算符:C语言中的运算符包括算术运算符、赋值运算符、比较运算符等。控制结构:C语言中的控制结构包括分支语句(if…else语句、switch语句等)和循环语句(while语句、for语句等)。函数:C语言中的函数是一段可重复使用的程序代码,可以把函数作为一个模块,供程序中的其他部分调用。原创 2023-11-26 14:10:32 · 1032 阅读 · 0 评论 -
C语言概述
经过以上分析,我们发现编译过程并不像想象的那么简单,而是要经过预处理、编译、汇编、链接。尽管我们平时使用gcc命令的时候没有关心中间结果,但每次程序的编译都少不了这几个步骤。原创 2023-11-12 03:00:00 · 687 阅读 · 0 评论