我爱C语言:从入门到精通
文章平均质量分 96
本专栏旨在帮助读者从零基础开始学习C语言,并逐步提升技能,直至达到熟练水平。我们将从C语言的基本语法开始讲解,逐步引导你掌握流程控制、函数、指针、数组等重要概念。通过大量的实例演示和练习题,你将有机会巩固所学知识,并在实践中提升编程能力。让我们一起踏上这段有趣而富有挑战的C语言学习之旅吧!
阿森要自信
写是为了更好的思考!阿森讲C/C++,专注于分享编程技巧和经验,让代码走进生活,欢迎关注我的博客,一起努力,一起探索编程的乐趣!
展开
-
【C语言】超详解memset&&memcpy&&memmove&&memcmp的使⽤
>库函数网址查询:[https://legacy.cplusplus.com/reference/cstring/memcmp/](https://legacy.cplusplus.com/reference/cstring/memcmp/)库函数`memset`,`memcpy`,`memmove`,`memcmp`都存在库函数` (string.h)`中,使用需要使用`#include `原创 2024-05-07 08:00:00 · 2032 阅读 · 6 评论 -
【C语言】C语言运算符优先级详解
在C语言中,运算符的优先级决定了表达式中各个运算符的计算顺序。了解这些优先级对于正确理解和编写复杂表达式至关重要。本文将深入探讨C语言中各种运算符的优先级及其影响。原创 2024-03-22 17:45:16 · 5730 阅读 · 8 评论 -
【C语言】五种方法实现C语言中大小写字母的转化
上面了解位运算,并用的是32的二进制进行第6位操作,还要取反(~)是不是觉得有点繁琐,能不能一步到位呢,这里有个小巧比较,以下用的是第五位进行操作:原创 2024-03-15 16:54:17 · 7371 阅读 · 14 评论 -
【C语言】深度探讨文件操作(一)
本小节,我们学习文件操作的知识,为什么使用文件?什么是文件?程序文件和数据文件,文件名的构成,二进制文件和文本文件?文件的打开和关闭,认识 流和标准流,利用 ⽂件的顺序读写,最后进行了简单文件拷贝,干货满满!学习起来吧😃!文件是计算机系统中用来存储和组织数据的基本单位。磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)这次阿森和你一起学习为什么使用文件?什么是文件?程序文件和数据文件,文件名的构成,二进制文件和文本文件?原创 2024-01-21 17:47:38 · 2102 阅读 · 103 评论 -
【C语言】编译和链接深度剖析
本小节,我们学习翻译环境和运行环境,其中我们将学习编译环境的4个阶段:预编译,编译(词法分析,语法分析,语义分析),汇编,链接,文章干货满满!学习起来吧😃!这次阿森和你一起学习了 C语言程序从源代码到可执行文件的整个翻译过程。翻译环境指将源代码翻译成可执行程序的整个过程,运行环境指程序实际执行的环境。预处理(预编译)–>对源代码进行预处理,如宏替换、头文件包含等。编译 -->将预处理后的源代码进行词法、语法和语义分析,生成目标代码。词法分析:识别源代码中的标识符、关键字、运算符等词法单元。原创 2024-01-20 03:07:46 · 1591 阅读 · 90 评论 -
【C语言】动态内存管理之4个内存函数`malloc`,`free`,`calloc`和`realloc`深度了解
本小节,我们学习动态内存管理:为什么要有动态内存分配?mallocfreecalloc和realloc,这些C标准库中的内存管理函数都声明在在stdlib.h头⽂件中。干货满满!学习起来吧😃!这次阿森和你一起学习了声明在stdlib.h头文件中的4个内存管理函数malloc()free()calloc()和realloc()malloc()- 分配内存块 -free()- 释放内存块 -calloc()- 分配并清零初始化内存块 - vrealloc()- 重新分配内存块大小 -原创 2024-01-03 14:52:39 · 4940 阅读 · 120 评论 -
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
联合体(union)是允许一个变量通过不同的接口访问内存的一种数据类型,表示一个变量可以存储不同类型的值,而枚举是使用enum关键字定义一组相关且互斥的整形常量集合。本章阿森将和你学习联合体类型的声明,特点,有关大小的计算,还有枚举类型的声明,优点和使用。文章干货满满!学习起来吧😃!这次阿森和你一起学习联合体类型的声明,特点,然后进行相同成员的结构体和联合体对⽐,⼤⼩的计算,联合体应用,枚举类型的声明,优点和扫雷改造使⽤方法,阿森将下一节和你一起学习动态内存管理🚀。原创 2023-12-30 15:01:56 · 2848 阅读 · 114 评论 -
【C语言】自定义类型:结构体深入解析(三)结构体实现位段最终篇
本小节,我们将学习结构体最后的知识:结构体实现位段,阿森将会和你一起去学习什么是位段?位段的内存分配,VS怎么开辟位段空间呢?位段跨平台问题,随即位段的应用,最后我们也要了解它的注意事项。文章干货满满,很容易理解,学习起来吧!😊位段是C语言中结构体的一种数据类型。位段允许在结构体中定义具有指定位数的成员,这些成员可以占用结构体变量内部的连续比特位。位段的声明和结构是类似的,有两个不同:位段的成员必须是int或signed int,在C99中位段成员的类型也可以选择其他类型。原创 2023-12-26 22:28:03 · 2414 阅读 · 112 评论 -
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
本小节,我们学习结构的内存对齐,理解其对齐规则,内存对齐包含结构体的计算,使用宏offsetof计算偏移量,为什么要存在内存对齐?最后了解结构体的传参文章干货满满!学习起来吧😃!这次阿森和你一起学习结构体的 结构体内存对齐,内存对齐包含结构体的计算,使用宏offsetof计算偏移量,为什么存在内存对⻬?结构体传参的本质,阿森将下一节和你一起学习结构体实现位段。原创 2023-12-22 15:43:32 · 8385 阅读 · 127 评论 -
【C语言】自定义类型:结构体深入解析(一)
本小节,阿森继续和你一起学习什么是结构体?结构体类型的声明和创建,然后就是结构体的初始化,随即学习结构成员的访问操作符来更好的打印结构体的数据,当然还有匿名结构体类型,和结构的自引用。文章干货满满,接下来我们就学习一下结构体吧 😃!结构体是一种用户定义的数据类型,它允许用户根据需要组合不同类型的变量。int age;结构体通过struct关键字来定义,它允许将多个不同类型的数据元素组合在一起,这些数据元素称为结构体的成员。原创 2023-12-19 12:35:03 · 2534 阅读 · 105 评论 -
【C语言】超详解strncpy&&strncat&&strncmp&&strerror&&perror的使⽤和模拟实现
strncpystrcnatstrncmp的使用和两种模拟实现方法,他们和strcpy等函数比较多了一个n,实现方法有很大区别,还有strerror和perror的使用,学习这些库函数,可以更好的方便操作字符和字符串,文章干货满满,接下来我们就学习一下这些函数吧!strcpystrcat这类函数不安全,因为它们在复制字符串时不检查目标缓冲区的大小,可能会导致缓冲区溢出。而strncpystrncatstrncmp这类函数相对来说更安全,因为它们在复制/追加字符串时会限定最大长度参数n。原创 2023-12-15 01:37:33 · 1916 阅读 · 125 评论 -
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现
记上节,我们学了字符串strlen,strcpy,strcat,strcmp,strstr的使用和他的模拟实现方法,学习这些库函数,可以更好的方便操作字符和字符串,文章干货满满,接下来我们就学习一下这些函数吧!这次阿森和你一起学习4个C语言中常用的基本字符操作函数,当然这只是一部分,还有很多,但阿森会慢慢和你一起学习。原创 2023-12-10 19:21:25 · 2481 阅读 · 111 评论 -
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
本小节我们将学习字符分类函数,字符串转换函数,使用库函数实现函数的大小写转换,当然还有字符串转换成整数(isdigit和atoi),使用(snprintf)将整数怎么转换回字符串。最后还有strlen函数的三种模拟实现。文章干货满满,让我们学习起来!通过学习字符分类函数、字符串转换函数和字符串长度计算的原理和用法,我们可以更好地理解字符和字符串的处理方式,并能够灵活运用这些函数进行字符和字符串的处理。这些函数在实际的开发中经常会用到,掌握它们的使用方法对于提高开发效率和代码质量都很重要。原创 2023-12-07 22:58:26 · 2240 阅读 · 110 评论 -
【C语言】VS实⽤调试技巧&(Debug和Release)监视&内存
VS实⽤调试技巧&(Debug和Release)监视&内存.1 编译型错误 .2 链接型错误 .3链接型错误,怎么一步一步找到 Bug?确定不看看吗?原创 2023-11-10 14:57:08 · 1297 阅读 · 60 评论 -
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
通过前几节我们学了前面五节指针和学习了sizeof操作符知识,本小节,阿森继续和你一起做一维数组和指针笔试题,🏂当然还有关于指针运算的笔试题,干货满满!让我们开始做题😁!(🌷当然,宝子们,天气变化大,记得多注意保暖🌷)本小节我们学习了sizeof和strlen对一维字符数组,字符串数组和指针变量进行练习,我们应该对指针有了更多的理解,但是他们都离不开我们以下的知识点。sizeof用于计算变量或类型占用的内存空间(字节单位),它是编译期就能确定的常量。strlen用于计算字符串长度,但仅限于以。原创 2023-12-01 22:35:12 · 1608 阅读 · 115 评论 -
【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析&&模拟实现
一、转移表二、回调函数是什么?三、qsort函数细解3.1 类比冒泡排序?3.2 qosrt函数超详解3.2.1qsort函数排序整型数据3.2.2 使⽤qsort排序结构数据四、 qsort函数的模拟实现4.1 模拟qsort整形数据4.2 模拟`qsort`排序结构数据原创 2023-11-25 22:03:00 · 1380 阅读 · 100 评论 -
【C语言】深入解开指针(四)
一、🚣 字符指针变量二、⛵️ 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化三、⛵️⼆维数组传参的本质四、🚤函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使⽤4.3 两段有趣的代码4.3.1 typedef关键字五、🚢函数指针数组原创 2023-11-23 00:09:08 · 1047 阅读 · 94 评论 -
【C语言】深入解开指针(三)
深入学习指针,不一样的指针等你学习、 数组名的理解、 使⽤指针访问数组、⼀维数组传参的本质、⼆级指针、指针数组原创 2023-11-17 22:11:24 · 1547 阅读 · 74 评论 -
【C语言】深入解开指针(二)
一、const修饰指针1.1 const修饰变量1.2 const修饰指针变量二、指针运算2.1 指针+ - 整数2.2 指针-指针2.3 指针的关系运算三、野指针3.1 野指针成因3.2 如何规避野指针四、 assert断⾔四、指针的使⽤和传址调⽤4.1 strlen的模拟实现4.2 传值调⽤和传址调⽤原创 2023-11-14 02:29:05 · 1433 阅读 · 78 评论 -
【C语言】深入解开指针(一)
一、内存和地址1.1 内存1.2 怎么理解编址呢?二、 指针变量和地址2.1 取地址操作符(&)2.2指针变量和解引⽤操作符(*)2.2.1 如何拆解指针类型2.2.2 解引⽤操作符2.3 指针变量的⼤⼩三、 指针变量类型的意义3.1 指针的解引⽤3.2 指针+ - 整数3.3 void* 指针原创 2023-11-13 02:55:07 · 485 阅读 · 38 评论 -
【C语言】函数的系统化精讲(三)
递归虽好,但是也会引⼊⼀些问题,所以我们⼀定不要迷恋递归,适当就好。递归和循环的选择:1,如果使用递归写代码,非常容易,写出的代码没问题,那就使用递归。2,如果递归写出的问题,是存在明显的缺陷,那就不能使用递归,得用迭代的方式处理。原创 2023-11-08 03:07:30 · 606 阅读 · 48 评论 -
【C语言】函数的系统化精讲(二)
VS的单个文件和多个文件的操作static 和 extern 都是C语⾔中的关键字。static 是 静态的 的意思,可以⽤来:• 修饰局部变量• 修饰全局变量• 修饰函数extern 是⽤来声明外部符号的。原创 2023-11-07 02:23:37 · 419 阅读 · 24 评论 -
【C语言】函数的系统化精讲(一)
函数是数学中的概念,如一次函数y=kx+b,给定x得到y。在C语言中也有函数,称为子程序。C语言函数是完成特定任务的小段代码,有特殊的写法和调用方法。C语言程序由无数个小函数组成,大计算任务可以分解成较小的函数完成。原创 2023-11-06 02:43:17 · 445 阅读 · 20 评论 -
【C语言】扫雷游戏的一步一步的实现
本小节,阿森将和你学习扫雷的制作,扫雷的游戏分析和逻辑,最后文章末尾有代码实现,学习文章干货满满!学习起来吧😃!好啦!扫雷简易版的小游戏到这里就完了,注:永远不要害怕每一次失败,要勇于尝试,看过千遍万遍,不过于自己动手做几遍!如果文章有错误,你可以指出,我不胜感激,让我们共同学习和交流!原创 2023-11-05 00:51:02 · 516 阅读 · 58 评论 -
【C语言】猜数字小游戏的一步一步实现
通过前面的学习,我们可以制作一个简单C语言的小游戏——猜数字小游戏游戏要求:1.电脑自动生成1~100的随机数2.玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束。原创 2023-10-29 20:34:35 · 395 阅读 · 25 评论 -
【C语言】拿捏冒泡排序(图解)
冒泡排序:它重复地走访要排序的数列,一次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。重复地进行直到没有再需要交换,也就是说该数列已经排序完成。原创 2023-11-12 03:39:54 · 666 阅读 · 17 评论 -
【C语言】分支循环第二章
接上回,通过前面分支循环第一章,我们知道了if和switch的用法,本章我们讲继续学习循环语句结构。原创 2023-10-29 01:39:59 · 188 阅读 · 13 评论 -
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“
C语言是一种结构化的程序设计语言,其中包含三种结构:顺序结构、选择结构和循环结构。要实现分支结构,可以使用if和switch,而实现循环结构则可以使用for while和do while。原创 2023-10-24 12:12:38 · 176 阅读 · 6 评论 -
【C语言】C语言⻘蛙跳台阶问题--递归问题
【C语言】C语言⻘蛙跳台阶问题--求解第n个斐波那契数--判断一个字符串是否是回文字符串递归问题原创 2023-11-04 02:52:09 · 195 阅读 · 9 评论 -
【C语言】变长数组,二分查找和数组之间自动替换的实现
C语言的变长数组和二分查找和数组之间的自动替换原创 2023-11-03 03:22:19 · 137 阅读 · 12 评论 -
【C语言数组】创建、初始化、以及使用
数组的概念数组是⼀组相同类型元素的集合:• 数组中存放的是一个或多个数据,但数组元素个数不能为0。• 数组中存放的多个数据类型相同。数组分为一维数组和多维数组,多维数组一般常见的是二维数组。原创 2023-11-01 22:34:00 · 603 阅读 · 19 评论 -
【C语言】手把手教你配置VS的常见函数如何不报错!
这次阿森和你一起学习,但阿森会慢慢和你一起学习VS的常见函数如何不报错!怎么配置。原创 2023-10-19 22:00:11 · 532 阅读 · 4 评论 -
【C数据(一)】数据类型和变量你真的理解了吗?来看看这篇
基本数据类型:char:字符类型,占1字节short:短整型,占2字节int:整型,占4字节long:长整型,占4或8字节long long:更长的整型,占8字节float:单精度浮点数,占4字节double:双精度浮点数,占8字节void:无类型bool:布尔类型C语言没有内置布尔类型bool,需要包含头文件变量的数据类型:自动变量:定义在函数或代码块内的变量,生命周期在函数或代码块结束后结束。静态变量:使用static声明的变量,生命周期持续整个程序执行期间。原创 2023-11-29 02:33:19 · 551 阅读 · 28 评论 -
【C语言】第三回 关于字符串,语句和注释的使用
一、字符串、\0 和 转义字符1. 字符1.2. `\0`1.3 转义字符二、 语句和语句分类2.1 空语句2.2 表达式语句2.3 函数调**⽤**语句2.4 复合语句2.5 控制语句三、 注释的2种形式3.1 /**/ 的形式3.2 // 的形式原创 2023-10-15 16:40:47 · 111 阅读 · 6 评论 -
【C语言第二回】main、printf和库函数
前面简单介绍了main函数和printf函数,那什么又是库函数呢?为了不再重复实现常⻅的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数再由不同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了⼀个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上⼀些编译器⼚商可能会额外扩展提供部分函数(这些函数其他编译器不⼀定⽀持)。⼀个系列的库函数⼀般会声明在同⼀个头⽂件中,所以库函数的使⽤,要包含对应的头⽂件。C语⾔中有⼀批保留的名字的符号,⽐如:intif。原创 2023-10-15 15:23:08 · 149 阅读 · 0 评论 -
【C语言】第一回(源(.c)文件怎么生成可执程序(.exe)文件)
注:1. 每个源⽂件(.c)单独经过编译器处理⽣成对应的⽬标⽂件(.obj为后缀的⽂件)2. 多个⽬标⽂件和库⽂件经过链接器处理⽣成对应的可执⾏程序(.exe⽂件)原创 2023-10-14 22:55:42 · 438 阅读 · 3 评论