- 博客(16)
- 收藏
- 关注
原创 【蓝桥杯刷题实战】路径之谜
int j=0;int num=1;zhuanyix和zhuanyiy:这两个数组表示四个方向的偏移量zhuanyix[0]=1和zhuanyiy[0]=0表示向右移动和表示向下移动;和表示向左移动;和表示向上移动。d数组:用于存储路径,每个元素存储路径上经过的格子的编号。j:d数组的索引,记录当前路径的长度。num:用于统计到达终点时,箭用完的行和列的数量。
2025-04-03 14:37:46
803
原创 编译和链接
前⾯我们⾮常简洁的讲解了⼀个C的程序是如何编译和链接,到最终⽣成可执⾏程序的过程,其实很多 内部的细节⽆法展开讲解。程序同时也可以使⽤静态(static)内存,存储于静态内存中的变量在程序的整个执⾏过程 ⼀直保留他们的值。3.处理#include 预编译指令,将包含的头⽂件的内容插⼊到该预编译指令的位置。这个过程是递归进⾏的,也就是说被包含的头⽂件也可能包含其他⽂件。就是根据汇编指令和机器指令的对照表⼀⼀的进⾏翻译,也不做指令优化。链接是⼀个复杂的过程,链接的时候需要把⼀堆⽂件链接在⼀起才⽣成可执⾏程序。
2024-10-31 21:58:39
983
原创 ⾃定义类型:结构体
1.结构体类型的声明2.结构体变量的创建和初始化3.结构成员访问操作符4.结构体内存对⻬5.结构体传参6.结构体实现位段1.结构体类型的声明前⾯我们在学习操作符的时候,已经学习了结构体的知识,这⾥稍微复习⼀下。1.1结构体回顾结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。1.1.1结构体的声明1.1.2结构体变量的创建和初始化。
2024-10-24 19:07:30
866
原创 C语言的内存函数讲解
⽬录:1.memcpy使⽤和模拟实现2.memmove使⽤和模拟实现3.memset函数的使⽤4.memcmp函数的使⽤1. memcpy使用和模拟实现函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。•这个函数在遇到'\0'的时候并不会停下来。•如果source和destination有任何的重叠,复制的结果都是未定义的。对于重叠的内存,交给memmove来处理。
2024-10-14 22:43:35
279
原创 关于操作符详解(1)
1.操作符的分类2.⼆进制和进制转换3.原码、反码、补码4.移位操作符5.位操作符:&、|、^、~6.单⽬操作符7.逗号表达式8.下标访问[]、函数调⽤()1.操作符的分类•算术操作符:•移位操作符:<< >>•位操作符:& | ^•赋值操作符:+=-=*=/=%=<<=>>=&=|=^=•单⽬操作符:!++--sizeof类型•关系操作符:>=<===!•逻辑操作符:&&||•条件操作符:?•。
2024-09-25 12:53:09
853
原创 数组和函数实践:扫雷游戏
再继续分析,我们在棋盘上布置了雷,棋盘上雷的信息(1)和⾮雷的信息(0),假设我们排查了某⼀个位置后,这个坐标处不是雷,这个坐标的周围有1个雷,那我们需要将排查出的雷的数量信息记录存储,并打印出来,作为排雷的重要参考信息的。假设我们排查(8,6)这个坐标时,我们访问周围的⼀圈8个⻩⾊位置,统计周围雷的个数时,最下⾯的三个坐标就会越界,为了防⽌越界,我们在设计的时候,给数组扩⼤⼀圈,雷还是布置在中间的9*9的坐标上,周围⼀圈不去布置雷就⾏,这样就解决了越界的问题。*如果位置不是雷,就显示周围有几个雷。
2024-09-02 22:04:58
701
1
原创 关于函数讲解(下)
在使⽤函数解决问题的时候,难免会将数组作为参数传递给函数,在函数内部对数组进⾏操作。⽐如:写⼀个函数将⼀个整型数组的内容,全部置为-1,再写⼀个函数打印数组的内容。return 0;这⾥的set_arr函数要能够对数组内容进⾏设置,就得把数组作为参数传递给函数,同时函数内部在设置数组每个元素的时候,也得遍历数组,需要知道数组的元素个数。所以我们需要给set_arr传递2个参数,⼀个是数组,另外⼀个是数组的元素个数。
2024-07-23 21:39:47
888
原创 关于函数的讲解(上)
数学中我们其实就⻅过函数的概念,⽐如:⼀次函数y=kx+b,k和b都是常数,给⼀个任意的x,就得到⼀个y值。其实在C语⾔也引⼊函数⼦程序,⼦程序这种翻译更加准确⼀些。C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。这段代码是有特殊的写法和调⽤⽅法的。C语⾔的程序其实是由⽆数个⼩的函数组合⽽成的,也可以说:⼀个⼤的计算任务可以分解成若⼲个较⼩的函数(对应较⼩的任务)完成。同时⼀个函数如果能完成某项特定任务的话,这个函数也是可以复⽤的,提升了开发软件的效率。在C语言一班会见到两种函数:•。
2024-07-18 11:03:00
840
原创 数组讲解(下)
6.⼆维数组的创建7.⼆维数组的初始化8.⼆维数组的使⽤9.⼆维数组在内存中的存储10.C99中的变⻓数组11.数组练习6.⼆维数组的创建6.1二维数组的概念前⾯学习的数组被称为⼀维数组,数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元素,这时候就是,⼆维数组作为数组元素的数组被称为,⼆维数组以上的数组统称 为。
2024-07-16 22:29:45
798
原创 关于数组的讲解(上)
C语⾔规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后⼀个元素的下标是n-1,下标就相当于数组元素的编号,;有了下标访问操作符,我们就可以轻松的访问到数组的元素了,⽐如我们访问下标为7的元素,我们就 可以使⽤ arr[7]学习了⼀维数组的基本语法,⼀维数组可以存放数据,存放数据的⽬的是对数据的操作,那我们如何使⽤⼀维数组呢?存放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的⼤⼩和数组的元素类型。中的常量值是⽤来指定数组的⼤⼩的,这个数组的⼤⼩是根据实际的需求指定就⾏。
2024-07-10 21:38:45
2218
原创 函数递归讲解
递归是学习C语言离不开的重要话题,那么什么是递归呢递归是解决问题的一种方法 ,简单来讲,在C语言中递归就是函数自己调用自己int main()main();//main函数中又调用了main函数return 0;上述就是⼀个简单的递归程序,只不过上⾯的递归只是为了演⽰递归的基本形式,不是为了解决问题,代码最终也会陷⼊死递归,导致栈溢出(Stack overflow)。
2024-07-04 17:14:29
1021
原创 C语言经典基础题(1)
继续对方法三优化,只要i不被[2, sqrt(i)]之间的任何数据整除,则i是素数,但是实际在操作时i不用从101逐渐递增到200,因为出了2和3之外,不会有两个连续相邻的数据同时为素数。//每拿到一个数据,只需要检测其:[2, i / 2]区间内是否有元素可以被2i整除即可,可以说明i不是素数。//上述方法的缺陷:超过i一半的数据,肯定不是i的倍数,上述进行了许多没有意义的运算,因此可以采用如下。3.计算1/1-1/2+1/3-1/4+1/5 ……+ 1/99 - 1/100 的值,打印出结果。
2024-06-28 22:25:12
392
原创 C语言数字类型和变量
注释是对代码的解释说明,注释是给自己看,给其他程序员看的,好的代码有利于我们理解代码,但注意不要赘余。这里的x是不能省略的,所谓的16进制数字是0~9,剩下的10用a表示,11用b表示,12用c来表示以此类推>>> 字母可以用大写也可以用小写。其实每一种数据类型都有自己的取值范围,也就是存储的数值的最大值和最小值的区间,在limits.h中说明了整型类型的取值范围。sizeof是一个关键字,也是操作符,专门用来计算sizeof的操作符数的类型长度的,单位是字节。不同的系统中,返回值的类型有可能是。
2024-06-10 00:52:41
1973
原创 C语言常见概念
因为所有的数据在计算机中都是用二进制的形式储存的,如果给每一个字符编一个二进制序列,这个就叫做编码,为了方便,美国标准协会ANSI出台了一个标准ASCII编码,C语言字符就遵循了ASCII编码的方式。C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身是无法执行的,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,文件才能执行。strlen是求字符串的长度的,关注的是字符串中的\0,计算的是\0之前出现的字符个数strlen 是库函数只针对字符串。
2024-06-02 23:16:40
1920
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人