C
文章平均质量分 96
C语言语法阶段
码农烧烤小站
yyx_dev
展开
-
C语言详解:分支循环结构
分支循环结构结束了初识C语言,现在我们再从头细细的学起。首先映入眼帘的是三大结构,分别是顺序结构,选择结构,循环结构。生活中的事情大大小小基本上都可以通过这三种结构描述。C语言是一门结构化的编程语言。顺序结构不必多言,选择结构有if语句,switch语句,循环结构有while循环,for循环以及do...while循环语句,还会介绍到goto语句。语句以分号;结尾的,用分号;隔开的就是一条语句。例如printf("hehe\n");,这便是一条语句。甚至还有只有一个分号;的语句称为空语句。pr原创 2021-12-05 16:47:06 · 1267 阅读 · 4 评论 -
初识C语言
文章目录初始C语言1C语言头文件主函数数据类型变量作用域生命周期常量字面常量const修饰的常变量#define定义的标识符常量枚举常量字符串转义字符注释选择循环语句函数数组初始C语言1如图所示,现在还是初识C语言的第一部分,本次只介绍了C语言本身特点,数据类型,常量变量,字符串转义字符注释,选择循环语句,函数,数组。接下来请先和我一起粗略地探讨其中内涵所在。C语言这是C语言的解释:C语言是计算机编程语言,应用于底层开发。尽管C语言提供低级处理的功能,但保持着良好跨平台的特性,美国国家标准局为原创 2021-12-04 16:29:47 · 849 阅读 · 0 评论 -
C语言进阶:程序预处理
文章目录程序预处理程序的翻译环境预编译编译汇编链接程序的执行环境程序的预处理预定义符号#define#define 定义符号注意#define 定义的宏错误形式#define 的替换规则注意宏操作符 `#`和`##`带副作用的宏参数宏和函数的对比命名规范#undef命令行定义条件编译常见编译指令嵌套指令文件包含程序预处理本章节研究的是,源代码文件test.c是如何一步步得到一个可执行程序test.exe的。在之前的学习中可知.c文件要先后经过编译链接成.exe文件再执行。程序的编译链接运行如下图原创 2021-10-13 15:23:11 · 1280 阅读 · 17 评论 -
C语言进阶:文件操作
文件操作文件操作在实际工作中,用到的并不多。但没有它C语言又不完整。所以本次我们研究一下C语言的文件操作。文件的定义将数据存储到外存(写入文件),每次程序结束后可以避免数据丢失,可以在程序运行时将数据加载到内存中,这是文件存在的意义。在程序设计中,从文件功能的角度分类,一般谈到的文件有两种:程序文件和数据文件。程序文件:跟程序有关的文件,如源文件.c,编译产生的目标文件.obj,可执行程序.exe等。数据文件:配合程序进行读写操作的,存储程序运行时所读写数据的文件,如.txt。原创 2021-10-02 22:38:15 · 937 阅读 · 22 评论 -
C语言进阶:动态内存管理
文章目录动态内存管理动态内存分配的意义动态内存函数的介绍开辟释放函数 `malloc` & `free`函数声明函数用法内存开辟函数 `calloc`函数声明函数用法内存调整函数 `realloc`函数声明函数用法常见的动态内存错误1.不检查空指针2.越界访问3.释放非动态开辟内存4.释放部分内存5.重复释放内存6.忘记释放内存笔试题Example 1Example 2Example 3Example 4C/C++内存划分用例展示内存划分图示柔性数组柔性数组的定义柔性数组的特点柔性数组的使用Exam原创 2021-09-28 20:45:52 · 1261 阅读 · 25 评论 -
C语言进阶:自定义类型
文章目录自定义类型结构体结构体的声明匿名形式声明Example结构体自引用Example 1Example 2注意结构体变量的定义结构体传参结构体内存对齐内存对齐的规则Example存在内存对齐的原因默认对齐数的修改Example位段位段的定义位段的内存分配位段的跨平台问题位段的应用枚举类型枚举的定义枚举的优点枚举的使用联合体联合的定义联合的特点Example联合大小的计算自定义类型C语言本身具有的内置类型如int, float, double...,同时也提供可自定义的自定义类型或构造类型如结构体,原创 2021-09-23 18:00:19 · 2946 阅读 · 37 评论 -
C语言进阶:字符串和内存函数
字符串和内存函数C语言本身并无字符串类型但其对字符串的操作却较为频繁。本章节介绍这些函数的用法和实现。字符串函数字符串求长函数 strlen函数声明size_t strlen (const char* string);Return ValueThis function returns the number of characters in string, excluding the terminal NULL. No return value is reserved to indicat原创 2021-09-19 22:54:25 · 1259 阅读 · 34 评论 -
C语言进阶:指针进阶续
文章目录指针进阶续回调函数回调函数定义快速排序 `qsort``qsort`函数逻辑小结`qsort`实现冒泡排序`qsort`实现结构体排序模拟实现`qsort`指针和数组笔试题解析数组辨析题一维数组字符数组字符串数组常量字符串二维数组指针笔试题Example 1Example 2Example 3Example 4Example 5Example 6Example 7Example 8指针进阶续续前文《C语言进阶:指针进阶》回调函数回调函数定义回调函数:通过函数指针调用的函数,或者说使用函原创 2021-09-08 17:28:05 · 1184 阅读 · 19 评论 -
C语言进阶:指针进阶
文章目录指针进阶字符指针字符指针的作用字符指针的特点指针数组指针数组的定义指针数组的使用数组指针数组指针的定义&数组名和数组名数组指针的使用反面用例正面用例Example类型辨别方法数组传参和指针传参一维数组传参二维数组传参一级指针传参二级指针传参函数指针函数指针的定义函数指针的类型函数指针的使用Example函数指针数组函数指针数组的定义函数指针数组的使用指向函数指针数组的指针回调函数指针和数组面试题解析指针进阶我们在初阶时就已经接触过指针,了解了指针的相关内容,有:指针定义:指针变量,原创 2021-09-01 18:08:46 · 1291 阅读 · 31 评论 -
C语言进阶:数据的存储
数据的存储类型的基本分类整型char signed char unsigned charshort signed short [int] unsigned short [int]int signed int unsigned int long signed long [int] unsigned long [int]long long ...加上[]代表可以省略不写。另外不加signed都默认为有符号的。不过c原创 2021-08-22 11:52:07 · 1366 阅读 · 52 评论 -
C语言详解:函数递归专题
函数递归函数递归的定义和优缺点程序调用自身的行为就是递归。可以直接或间接的调用,本质是把复杂的问题转化为一个规模小的问题。递归一般只需少量的代码就可描绘出多次重复计算。其主要思考方式在于大事化小。优点是为具有某些特征的编程问题提供了最简单的策略,缺点是层层调用,算法的复杂度可能过高,以致于快速耗干了计算机的内存资源,不方便阅读和维护等。递归的使用场景及必要条件使用场景能够要求转化为新的问题,且二者解决方法相同,所处理的对象存在规律变化。非递归比较麻烦,而递归很简单。有模板或是公式可以直接套原创 2021-08-17 17:30:38 · 23203 阅读 · 28 评论 -
C语言详解:结构体
结构体当然本次结构体仍不会讲的特别深入,在后面的自定义类型进阶会更加深入的讲到这部分内容。结构(体)是一些值的集合,这些值被称为成员变量。结构的每个成员变量可以具有不同类型。我们所学过的类型如:char,int,float,double等,都只能描述单一变量。但是结构体,顾名思义,是多个变量的集合,其中包含多个单一变量。所以C语言就发明了结构体用于用来描述复杂对象,如:书,人等具有多个特征的变量。结构体类型的声明结构体声明的语法结构struct tag//结构体名称{ member原创 2021-08-09 18:29:02 · 26790 阅读 · 11 评论 -
C语言详解:指针
指针这次的指针(Pointer),比初识C语言里的指针更深入一点,但也不是全部内容,因为后面的进阶部分还会讲到。定义内存划分内存是一块很大的空间,由一个个小的占一字节的内存单元组成,每一个内存单元对应绑定着一个地址,即对内存单元的编号。像是身份证号一样,通过地址我们就可以唯一确定地找到一块内存单元。如:指针地址直接指向了存储在内存的另一个值。由于能通过地址找到所需的变量单元,地址指向了唯一确定的内存单元,故将地址形象化称为指针。指针变量现在我们定义了一个整型变量a,在内存中给他分配了4个字原创 2021-08-08 00:07:13 · 1462 阅读 · 23 评论 -
C语言详解:操作符
操作符分类算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员算术操作符 + - * / %//1.int ret = 9 / 2;printf("%d", ret);//4//2.double ret2 = 9 / 2;printf("%lf", ret2);//4.000000//3.double ret3 = 9 / 2.0;printf("%lf", ret3);//4.原创 2021-08-01 13:10:11 · 713 阅读 · 10 评论 -
C语言详解:数组
数组一维数组创建定义数组是一组相同类型的元素的集合。那数组的语法形式:type_t arr_name [const_n]//如:int arr[10];type_t 指的是数组元素的类型。const_n 指的是一个常量表达式,用来指定数组的大小。此时运行程序的话,系统会报一个警告:未初始化变量。打开调试就会发现系统默认填入一些无意义的数据。当然全局数组的话,系统默认初始化为0;int arr[10];// 0 0 ... 0int main(){ return 0;}原创 2021-07-30 00:13:08 · 1392 阅读 · 2 评论 -
C语言详解:函数
函数定义程序里的函数又被叫做子程序,他作为一个大型程序的部分代码,有一或多个语句项组成。函数负责完成某项特定任务,提供了对过程的封装和对细节的隐藏,这样的代码通常会被集成为软件库。特点:具备相对的独立性一般有输入值和返回值功能单一且灵活函数的分类有:库函数和自定义函数。库函数定义库函数,顾名思义,放在库里供他人使用的函数。如打印输出这样的基础功能,他不是业务性的代码,在开发过程中使用率高且可移植性强,故C语言的基础库里提供了这样的一系列基础功能的代码。一般库函数有:IO函原创 2021-07-23 22:24:26 · 1476 阅读 · 13 评论