C语言
文章平均质量分 83
一起走进C语言的世界吧
小比卡丘
随时分享有用的知识,希望大家多多点赞支持!
展开
-
C语言进阶版第21课—预处理
C语言定义了一些预定义符号,可直接使用,预定义符号也是在预处理阶段处理的__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器支持ANCI C语法规则,那么该值是1#define定义标识符时需要在末尾加分号;吗???其中name是宏名,parament-list是宏的参数,stuff是宏体其中参数列表左边的括号必须与宏名紧挨着,中间不允许有空格简单举个例子。原创 2024-10-14 21:37:48 · 637 阅读 · 0 评论 -
C语言进阶版第20课—编译和链接
重定位就是地址修正的过程。原创 2024-10-12 22:55:43 · 884 阅读 · 0 评论 -
c语言进阶版第19课—文件操作
函数作用printf针对标准输出流(stdout)的,将数据以格式化的形式输出到屏幕上scanf针对标准输入流(stdin)的,从键盘上输入格式化的数据fprintf针对所有输出流的,格式化的输出函数fscanf针对所有输入流的,格式化输入函数sprintf将格式化的数据转换成字符串sscanf从字符串中提取出格式化的数据。原创 2024-10-12 17:06:55 · 1086 阅读 · 0 评论 -
C语言进阶版第18课—动态内存管理
那么我们为什么要开辟动态的内存呢?因为我们可以通过动态管理内存,从而可以更好的利用有限的内存空间,很大程度上避免了内存的浪费。但是,正是由于内存通过动态管理,也会常常出现越界访问,空间占用未释放等问题,因此在使用时需特别注意 为什么free释放完动态内存后还要将p赋值NULL7. c/c++中程序内存区域划分原创 2024-10-08 17:50:36 · 625 阅读 · 0 评论 -
C语言进阶版第17课—自定义类型:联合和枚举
特别注意的是:枚举的最后一个成员不需要加任何标点符号。原创 2024-10-06 17:38:36 · 445 阅读 · 0 评论 -
C语言进阶版第16课—自定义类型:结构体
如果结构体发生嵌套使用,那么嵌套的结构体成员对齐到自己的成员中最大对齐数的整数倍处,结构体的总大小就是最大对齐数(含嵌套结构体)的整数倍。结构体总大小为最大对齐数(包括第一个成员的对齐数,所有成员中最大的对齐数)的整数倍。结构体的第一个成员对齐到和结构体变量起始位置偏移量为0的地址处。对齐数 = 编译器默认的一个对齐数和该成员变量自身大小的较小值。Linux中 gcc 没有默认对齐数,对齐数是成员本身大小。那么位段成员冒号后面的数字是什么意思呢?结构体嵌套内存对齐的规则。VS 中对齐数是 8。原创 2024-10-05 22:35:34 · 903 阅读 · 0 评论 -
C语言进阶版第15课—数据在内存中的存储
(-1)^S表示符号位,S等于0表示V为正数,S等于1表示V为负数。M表示有效数字,且M是大于等于1的,且小于2。指数E不全为0或不全为1。指数E取出有三种情况。原创 2024-10-04 20:03:45 · 661 阅读 · 0 评论 -
C语言进阶版第14课—内存函数
通常我们使用memcpy函数来处理源空间和目标空间无重叠的情况,而重叠的情况通常使用memmove函数来实现。如果想把5个元素(1,2,3,4,5)放到(3,4,5,6,7)里面去,my_memcpy能帮我们实现吗?原创 2024-09-30 20:11:21 · 798 阅读 · 0 评论 -
C语言进阶版第13课—字符函数和字符串函数2
3. strerror函数的使用。原创 2024-09-28 19:52:59 · 746 阅读 · 0 评论 -
C语言进阶版第12课—字符函数和字符串函数1
1. 字符分类函数。原创 2024-09-27 21:21:33 · 707 阅读 · 0 评论 -
c语言进阶版第11课—指针练习
sizeof(数组名),这里的数组名是整个数组,计算的是整个数组大小&数组名,这里的数组名表示整个数组,取出的是整个数组地址除此之外所有的数组名都表示数组首元素地址。原创 2024-09-23 20:54:41 · 461 阅读 · 0 评论 -
C语言进阶版第10课—qsort函数排序
qsort函数一共有四个参数,该函数可用来排任意类型的数第一个参数void* base —> base中存放的是待排序数组首元素的地址(void*表示base是无符号类型的指针,用来存储不同类型数组的地址)第二个参数size_t num —> num指待排数组元素个数(size_t为无符号整形)第三个参数size_t size —> size指待排数组中每个元素的大小(单位字节)第四个参数。原创 2024-09-15 23:51:26 · 773 阅读 · 0 评论 -
C语言进阶版第9课—指针(3)
数组指针变量 → 存放数组地址,指向数组的指针变量。原创 2024-09-09 22:31:15 · 756 阅读 · 0 评论 -
C语言进阶版第8课—指针(2)
其他任何地方使用数组名,数组名都表示首元素的地址。sizeof(数组名)指针数组模拟二维数组。原创 2024-09-07 23:49:54 · 834 阅读 · 0 评论 -
C语言进阶版第七课—指针(1)
通过调试我们发现,函数在传参时,形参会单独创建一个地址来接收实参,因此对形参的修改也不会影响到实参。32位操作系统下指针变量大小为4个字节,64位操作系统下指针变量大小为8个字节。类型的解引用能访问4个字节,因此通过不同类型的解引用访问的字节数也不同.对比上图得知,指针变量的大小与指针变量的类型无关,而与操作系统有关。当我们把地址传过去时,形参的变化就会影响到实参中的变量。类型的解引用只能访问一个字节,原创 2024-09-01 17:50:25 · 946 阅读 · 0 评论 -
C语言进阶版第六课—操作符
正整数的原码、反码、补码相同。原创 2024-08-06 21:54:27 · 887 阅读 · 0 评论 -
C语言函数递归练习—青蛙跳台阶、汉诺塔问题
第一步,n-1张卡片放入B;第三步,n-1张卡片放入C。第一步,将第一张卡片移到C柱。第二步,将第二张卡片移到B柱。第三步,将第一张卡片移到B柱。第四步,将第三张卡片移到C柱。第五步,将第1张卡片移到A柱。第六步,将第2张卡片移到C柱。第七步,将第1张卡片移到C柱。第二步,第n张卡片放入C;原创 2024-08-04 15:50:06 · 490 阅读 · 0 评论 -
C语言进阶版第五课—函数递归
函数递归就是函数自己调用自己图片中的函数test()就是函数递归的一个体现,在其内部调用自己常规思路return sz;当然我们也可以用指针的形式来实现字符串的结束标志为‘\0’指针str是用来存储数组首元素地址的而*str是通过解引用str指针得到字符对应的ASCII值//用指针形式实现求字符串长度int my_strlen(char* str) //指针接收//统计字符串长度= '\0')count++;str++;原创 2024-08-03 21:31:54 · 1138 阅读 · 0 评论 -
C语言进阶版第4课—函数
其实就是我们自己定义的函数,函数名尽量要有意义这里的ADD就是我们定义的加法函数,使用自定义函数时,函数一定要放在函数调用前,如果想要将函数放在函数调用之后,那么要在调用前进行函数声明.//函数//也可以写成int ADD(int , int );主要是声明有ADD这个函数,且两个参数都是int类型int main()int a = 7;int b = 17;return 0;原创 2024-07-27 23:59:55 · 873 阅读 · 0 评论 -
C语言进阶版—扫雷游戏
完整代码如下。原创 2024-07-28 21:54:46 · 1124 阅读 · 0 评论 -
C语言进阶版第3课—数组
]中的常量值是用来指定数组的大小的。原创 2024-07-27 12:35:36 · 955 阅读 · 0 评论 -
C语言进阶版—猜数字游戏
【代码】C语言进阶版—猜数字游戏。原创 2024-07-22 20:52:09 · 853 阅读 · 0 评论 -
C语言进阶版第2课—break、continue语句和goto语句
通常是不建议使用goto语句,因为它可能会带来不必要的麻烦,但它也不是一无是处.在循环中,如果我们想要在某些特定的情况下跳出循环,这时我们就要使用。while循环中的continue……while循环中的break。for循环中的continue。while循环中的break。for循环中的break。当然,代码还可以进行优化。原创 2024-07-21 19:00:40 · 1040 阅读 · 0 评论 -
C语言进阶版第1课—分支语句和循环语句
C语言语句包含了表达式语句、函数调用语句、控制语句、复合语句和空语句,而我们今天所讲的分支语句和循环语句就是隶属于控制语句用于控制程序的执行流程,以实现程序的各种结构方式。原创 2024-07-20 23:01:15 · 1235 阅读 · 0 评论 -
初识C语言第8课—指针、结构体、#define定义宏和常量
结构体就是把一些单一类型组合在一起,可创建类型,使得C语言有能力描述复杂类型,关键字struct结构体在创建变量名的时候会给一些值,相当于初始化C语言中,通常小写字母用于局部变量和函数参数大写字母用于全局变量、常量和宏。原创 2024-07-18 21:01:54 · 377 阅读 · 0 评论 -
scanf与printf用法补充
我们先看一段代码. 为什么这里输出的结果不一样,前期我们讲过%d是输出十进制的整数,而%c是输出字符,十进制数100对应ASCII表的字符‘d’,这里对ASCII表不做赘述,大家可自行网上查询。 当然,我们也可以自定义参数的变量. scanf的用法和printf类似,它的第一个字符是一个格式符字符串,里面放置占位符. 特别需要提醒的是,在VS编译器里,使用scanf库函数是编译器会报错,这时只需在首行加上#define _CRT_SECURE_NO_WARNINGS,即可正常调试代码。原创 2024-07-17 18:07:47 · 607 阅读 · 0 评论 -
初识C语言第7课—操作符
接下来我将用一段代码帮助我们理解.原创 2024-07-09 23:24:03 · 614 阅读 · 0 评论 -
初识C语言第6课—数组
C语言中数组是如何使用的呢?以及数组里的元素如何去访问?接下来我将通过一个简单的代码来认识一下数组.原创 2024-07-06 11:15:32 · 224 阅读 · 0 评论 -
初识C语言第5课—选择语句与循环语句、函数
接下来我将用一段代码主要介绍if语句的使用。 if语句后边加(),里面主要放条件,如果条件为真,则执行下面大括号{}里面的代码块,条件为假则跳过。C语言中1代表真,0代表假.切记所有的符号均是在英文模式下输入. 代码运行时编译器会报错. 代码报错的原因是编译器不支持scanf函数的调用,我们只需将这串代码 #define _CRT_SECURE_NO_WARNINGS加入到第一行就可以解决问题,运行结果如下. 接下来我将用一段代码主要介绍if……else语句的使用。 代码运行结果原创 2024-06-29 17:16:23 · 528 阅读 · 1 评论 -
初识C语言第4课—输出类型格式与转义字符
从代码的运行结果可以看出,加入退格符‘\b’之后,字母‘d’未输出,但它仍在内存里.从以上结果我们可以看出加\n(换行)的区别;,其中double类型的范围比float大,两者的区别如下。通过以下一段代码我们能更清晰直观的看到每个输出类型。接下来我将用一段代码来帮助我们加深理解。为什么会出现字符‘X’和数字‘0’呢?下面我将通过运行一段代码来进行验证.C语言中常见的输出格式有以下几种。接下来我将详细介绍每个转义字符。接下来我将通过一段代码来验证.C语言中常见的转义字符如下。代码运行后的结果如下.原创 2024-06-28 23:45:38 · 1224 阅读 · 0 评论 -
初识C语言第3课—二进制、八进制、十进制和十六进制之间的转换
最后余数的倒序则为其二进制数,转换结果如下。原创 2024-06-28 12:14:21 · 971 阅读 · 0 评论 -
初识C语言第2课—计算机单位和数据类型、常量和变量
初识C语言第2课—上节内容小编简单介绍了C语言的来源以及C语言入门的第一个程序,今天呢小编就带大家了解下都有哪些,以及C语言中都有哪些又是什么,它们又是如何作用的呢?原创 2024-06-26 18:19:50 · 696 阅读 · 0 评论 -
初识C语言第1课—c语言的第一个程序
初识C语言原创 2024-06-25 19:00:59 · 429 阅读 · 0 评论