C语言学习
文章平均质量分 93
记录C语言学习笔记,资料主要参考鹏哥C语言和菜鸟教程C语言。
Knox_Lai
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言学习(17)-预处理详解
define 叫做宏定义命令,它是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。程序中反复使用的表达式一般可以定义成宏(Macro)。#define 宏名 字符串# 表示这是一条预处理命令,所有的预处理命令都以 # 开头。宏名是标识符的一种,命名规则和变量相同。字符串可以是数字、表达式、if-else 语句、函数、代码片段等。原创 2025-11-17 11:14:01 · 939 阅读 · 0 评论 -
C语言学习(16)-编译与链接
所以当我们无法知道宏定义或者头文件是否包含正确的时候,可以查看预处理后的 .i 文件来确认。就是根据汇编指令和机器指令的对照表一一的进行翻译,也不做指令优化。将源代码程序被输入搜苗期,扫描器的任务就是简单的进行词法分析,把代码中的字符分割成一系列的记号(关键字、标识符、字面量、特殊字符等)。其实翻译环境是由编译和链接两个大的过程组成的,而编译又可以分解成:预处理(有些书也叫预编译)、编译、汇编三个过程。编译过程就是将预处理后的文件进行一系列的:词法分析、语法分析、语义分析及优化,生成相应的汇编代码文件。原创 2025-11-12 09:04:19 · 814 阅读 · 0 评论 -
C语言学习(15)-动态内存管理
它接受两个参数,即一个先前分配的指针和一个新的内存大小,然后尝试重新调整先前分配的内存块的大小。它接受三个参数,即目标内存区域的指针、源内存区域的指针和要复制的数据大小(以字节为单位)。它接受两个参数,即需要分配的内存块数和每个内存块的大小(以字节为单位),并返回一个指向分配内存的指针。它接受三个参数,即目标内存区域的指针、源内存区域的指针和要复制的数据大小(以字节为单位)。它接受一个参数,即需要分配的内存大小(以字节为单位),并返回一个指向分配内存的指针。最后 ptr = NULL;原创 2025-11-07 10:07:40 · 603 阅读 · 0 评论 -
C语言学习(14)-联合体和枚举
为了定义联合体,需要使用union语句,方式与定义结构体类似。union 语句定义了一个新的数据类型,带有多个成员。...union tag是可选的,每个是标准的变量定义,比如int i;或者float f;或者其他有效的变量定义。在共用体定义的末尾,最后一个分号之前,您可以指定一个或多个共用体变量,这是可选的。float f;} data;原创 2025-11-05 10:02:26 · 409 阅读 · 0 评论 -
C语言学习(13)-结构体
结构体定义由关键字 struct 和结构体名组成,结构体名可以根据需要自行定义。...tag是结构体标签。是标准的变量定义,比如 int i;或者 float f;,或者其他有效的变量定义。结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。//名字int age;//年龄//性别//学号}Stu;//分号不能丢在一般情况下,这 3 部分至少要出现 2 个。//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c//同时又声明了结构体变量s1。原创 2025-10-28 14:42:33 · 666 阅读 · 0 评论 -
C语言学习(12)-指针pt.2
是一个返回值为指针类型的函数。它本质上是一个普通函数,只是其返回值是指向某种数据类型的指针。原创 2025-10-27 09:53:26 · 728 阅读 · 0 评论 -
C语言学习(11)-指针pt.1
指针即指针变量用于存放其他数据单元(变量/数组/结构体/函数等)的首地址。若指针存放了某个数据单元的首地址,则这个指针指向了这个数据单元;若指针存放的值是0,则这个指针为空指针定义一个指针变量:指针定义的是指向的数据类型,指针本身没有类型指针的长度必须足够存储地址总线能够表示的所有地址,16位系统:x=2,32位系统:x=4,64位系统:x=8。原创 2025-10-23 17:12:16 · 265 阅读 · 0 评论 -
C语言学习(9)-局部变量与全局变量
该变量在全局数据区分配内存;静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为 0;它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。局部变量与静态局部变量的区别:静态局部变量只有在第一次函数被调用时创造并初始化,不需要在每次它进入和离开作用域时进行创建和销毁,因此,原创 2024-03-18 23:08:51 · 2210 阅读 · 1 评论 -
C语言学习(10)—递归
递归就是函数自己调用自己,下图为递归的流程图。原创 2024-12-26 15:07:49 · 847 阅读 · 0 评论 -
C语言学习(8)-函数
了解了库函数,我们的学习应该更关注自定义函数,自定义库函数也能给程序员写代码提供很多便利。一般我们在使用函数的时候,直接将函数写出来就使用了,比如上面那段代码,第3~8行是 Add 函数的定义,有了函数后,在第20行调用 Add 函数的。int b = 0;//输⼊//调⽤加法函数,完成a和b的相加//求和的结果放在r中//输出return 0;int z = 0;z = x + y;return z;这个代码在VS上编译,就会出现警告。原创 2024-03-18 21:07:46 · 773 阅读 · 1 评论 -
C语言学习(7)-数组
数组是一组相同类型元素的集合;数组中存放的是1个或者多个数据,但数组元素个数不能为0。数组中存放的数据,类型是相同的。数组分为一维数组和多维数组,多维数组一般比较多见的是二维数组。原创 2024-03-06 19:57:29 · 1150 阅读 · 0 评论 -
C语言学习(6)-循环
有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,以此类推。原创 2024-03-05 17:24:56 · 873 阅读 · 0 评论 -
C语言学习(3)-scanf和printf介绍
d 就是一个占位符,% 是占位符的标志,d表示整数。上面的示例中,name 是一个长度为11的字符数组,scanf() 的占位符 %10s 表示最多读取用户输入的十个字符,后面的字符将被丢弃,这样就不会有数组溢出的风险了。上面示例中,格式字符串 %d%d%f%f ,表示用户输入的前两个是整数,后两个是浮点数,比如1 -20 3.4 -4.0e3。所以,用户输入的数据之间,有一个或多个空格不影响 scanf() 解读数据,用回车将输入分成几行,也不影响解读,得到的结果与在一行输入是完全一样的。原创 2024-03-02 18:57:03 · 1274 阅读 · 0 评论 -
C语言学习(5)-判断
判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需)和条件为假时要执行的语句(可选的)。C语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。原创 2024-03-01 17:48:16 · 1334 阅读 · 1 评论 -
C语言学习(1)-C语言常见概念
C语⾔中有⼀批保留的名字的符号,⽐如: int 、 if 、 return ,这些符号被称为保留字或者关键 字。关键字都有特殊的意义,是保留给C语⾔使⽤的⾃⼰在创建标识符的时候是不能和关键字重复的关键字也是不能⾃⼰创建的。//在C99标准中加入了 inline 、 restrict 、 _Bool 、 _Complex 、 _Imaginary 等关键字。原创 2024-02-27 18:41:48 · 979 阅读 · 0 评论 -
C语言学习(2)-数据类型和变量
在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。原创 2024-02-27 22:56:09 · 887 阅读 · 0 评论 -
C语言学习(4)-C语言运算符
C语言中为了方便运算,提供了一系列运算符,其中+、-、*、/、%都是双目运算符,单目运算符有++、--、+(正号)、-(负号)对两个操作数的每一位执行逻辑与操作,如果两个相应的位都为 1,则结果为 1,否则为 0。对两个操作数的每一位执行逻辑或操作,如果两个相应的位都为 0,则结果为 0,否则为 1。对两个操作数的每一位执行逻辑异或操作,如果两个相应的位值相同,则结果为 0,否则为 1。C语言支持的算术运算符,如下表。对操作数的每一位执行逻辑取反操作,即将每一位的 0 变为 1,1 变为 0。原创 2024-02-28 21:54:06 · 1044 阅读 · 0 评论
分享