自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 C语言联合体和枚举:你真的用对了吗?

与结构体类似,可以是几个不同类型元素的集合,但是,与结构体不同的是:这几个元素公用一块空间枚举就是字面意思:列举,把所有可能都列出来。比如性别:男、女、保密,就这三种。

2025-06-05 10:38:32 533

原创 C语言探索之旅:深入理解结构体的奥秘

首先来回顾一下数组的定义:数组就是相同类型元素的集合。但是,实际中描述某个物体的数据绝大部分都是不同类型,这时候就需要一个新的东西来把这些数据集合起来:结构体结构体就是存放不同类型的数据的集合。int _b : 5;冒号后面的数字比啊是这个成员要占用的比特位的数量,比如a只占两个比特位位段的成员必须是 int ,unsigned int ,signed int 类型结构体作为C语言中实现复杂数据管理的重要机制,理解并善用它,能够极大地提升你的程序设计水平。

2025-06-04 14:04:04 1247

原创 C语言:数据在内存中的存储

在C语言的世界里,理解数据在内存中的存储方式是每个开发者必须掌握的基础知识。由上面两个练习可以看出,整型提升默认提升的是补码的最高位,最高位是几,整型提升的时候就补几,但是,如果这个数据本身的类型是无符号的,就只会补0,如果这个数本身有符号 ,但是打印的关键字为%u等无符号的,那么还是默认补最高位。&arr 取的是首元素地址,类型为:int (*) [4],+1 之后,指向数组末尾外的第一个空间,类型不变,然后强制类型转化为 int* ,所以 ptr[-1] 又指向了4 ,所以第一个打印(0x)4。

2025-06-03 11:55:33 811

原创 C语言:内存函数

掌握C语言的内存函数,不仅是写出高性能程序的基础,也是避免潜在内存错误的关键。功能:和 memcpy 一样,将 source 指向的空间拷贝到 destination 指向的空间,但与 memcpy 不同的是,memmove 的源空间和目标空间可以重叠。如图,这是一个存放着1~10的整型数组,我要将蓝色的地方拷贝到红色的地方,可以看到,蓝色矿与红色框是有重叠的,这种情景就称为目标空间与源空间的重叠。若 ptr1 = ptr2 ,返回 0;功能:设置内存块的内容,将内存中指定的长度空间设置为指定的内容。

2025-06-02 11:24:02 1071

原创 C语言:字符函数和字符串函数

注意,如果目标空间本来有字符,则会从第一个字符开始覆盖,覆盖完后不会有新的 \0 生成。功能:分割字:根据delim参数指定的分隔符,分割str。功能:字符串追加,把 source 指向的字符串追加到 destination 指向的空间中,最多追加 num 个字符。功能:字符串拷贝,把 source 指向的字符串拷贝到 destination 指向的空间中,最多拷贝 num 个字符。a = a ,进入下一个字符比较:b = b, 再进入下一个字符比较:c < f ,比较完成,abcd < abfg。

2025-05-31 17:37:46 1161

原创 C语言:深入理解指针(5)

(2)在默认升序的情况下,当 p1 > p2时,返回1, p1 == p2 时返回 0 ,p1 < p2 时返回 -1。简单点说,就是把函数的地址作为一个参数传递给另外一个函数,在其中被调用,那么被调用的函数就称为回调函数。(4)具体的比较标准由你自己来定,你可以比较整形,浮点型,字符型或者其他,不过要记得强制类型转换。qsort 是C语言中提供的一个排序函数,是基于快速排序思想的。//函数指针,指向的函数是用来比较被排序数组中的两个元素,//指针,指向被排序数组的第一个元素。//元素的大小(单位:字节)

2025-05-15 09:34:31 492

原创 C语言:深入理解指针(4)

C语言类型有整型,字符型,无符号整型等等,但是无符号整型 unsigned int 太长了,每次使用很不方便,又或者是方便元素类型修改,我们可以对类型重命名。"abcdef" 是常量字符串,本质上 pc 中存放的是首字符 a 的地址,从中我们也可以看出,%c 要的是变量。要值得注意的是,重命名后的名字不能再放到最后面了,而是要放在(*)里,同理,函数指针也是如此。二维数组的首元素其实是他的第一行,数组名表示首元素的地址,也就是第一行的地址。二维数组传参,形参可以写成二维数组的形式,那么还有没有其他形式呢?

2025-05-13 11:46:55 911

原创 C语言:深入理解指针(3)

指针的学习没有终点。继续探索,挑战自己,你将发现C语言指针的强大之处,并能编写出更高效、更灵活的代码。愿你在C语言指针的世界里越走越远,收获满满!

2025-05-12 18:36:19 1118

原创 C语言:深入理解指针(2)

野指针是指,指向的位置是不可知的指针。也可以说,是指向空间不属于当前程序的指针。

2025-05-08 10:37:41 355

原创 C 语言实现回型矩阵

显然,abcd是要时刻变化的,如果当 x == a , y == b时 a ++ , 那么下一次循环的时候 x 又等于 a了 ,所以我们选择岔开,将abcd的变化延迟到下一次方向改变。当 在 x == a 的情况下,y == b的情况下y++,会导致y指向矩阵外民,因此,判定的条件要变为 x == a && y < b。(1) x,y 代表着矩阵的行和列。当 x == c时 ,y--;当 y == d时, x--;(2)a,b,c,d 的变化。当x == a时,y++;当y == b时,x++;

2025-05-06 14:33:20 377

原创 C语言——深入理解指针(1)

说明:(1)指针是一个变量 ,因此,有时候也叫做指针变量;(2)指针里面放的是地址,放的是另一个变量的地址;(3)可以通俗的认为:地址 == 指针;(4)作用:可以通过存储的地址快速找到对应变量,进行访问,修改等操作。

2025-05-02 11:29:03 1130

原创 C语言中的原码、反码、补码及进制转换详解

在计算机内部,数据的存储方式和进制的转换是非常重要的概念。通过理解数据在内存中的存储和二进制与其他进制之间的转换,程序员可以更有效地进行编程和数据处理。在开发过程中,正确掌握这些知识可以帮助我们更好地理解计算机的运作原理,并提高我们的编程能力。_2_8。

2025-04-27 10:44:24 930

原创 挑战自我:用控制台C语言实现扫雷游戏!

通过这篇博客文章,我们一起学习了如何使用 C 语言在控制台中实现扫雷游戏。这个项目涵盖了 C 语言的许多基本概念,包括数组、循环、条件判断、函数和递归。希望你通过这个项目,能够加深对 C 语言的理解,提高编程能力。快来动手实践,打造属于你自己的扫雷游戏吧!

2025-04-23 14:29:41 377

原创 C语言的四舍五入问题

还有种简单的,直接用库函数 round 包含在 math.h 中,round 四舍五入到整数,所以我们还得参考上面的方法,想保留几位就把小数点右移几位,然后在进行round曹总,完事之后再缩小回来即可。然后笔者又查阅了相关资料,发现另一种方法,就是想保留几位就把小数点右移几位,然后在进行保留整数的操作,完事之后再缩小回来即可。今天在牛客网上做题,遇见了两道设计四舍五入的问题,但是貌似方法好像有差别,所以一时兴起,做一下关于C语言四舍五入问题的探讨。一、float 类型的四舍五入实例。

2025-04-21 13:29:37 428

原创 C语言scanf读取回车和空格等相关问题

大致来说,原理是这样的:用户在键盘上输入字符,这些字符会被存入一个叫缓存区的地方,然后 scanf 根据占位符去挨个读取缓存区的字符。可以看到,只有 3 后面的回车被读取了,而两个整型的读取没有任何影响,所以,这是因为占位符是%c ,还是 x 的类型为char?可以看到,回车被读取了,并且被存放成整型10,由以上推断,scanf 读取空白字符的情况取决于 占位符%c ,与字符类型无关。可以很明显的看到,还是只有3 后面的回车被读取了,而 m 存放了‘x3’,盲猜是个字符。好像对回车不感兴趣。

2025-04-21 10:24:39 319

原创 C语言的有序数组二分法查找

而不是简单的 left = mid 和right = mid。因为C语言除法的机制,会让你的left一直“卡在”原本的left的位置,不信的小伙伴可以去试试。难点就在于最后收尾即将找到的时候,很容易让人找不到头脑,要么导致死循环,要么导导致下标乱报。通俗点说,二分法就是每次选取有序数组中间的数值与自己想要的比较,然后缩小范围,根高中的二分法是一样的。4.一定是有序数组,这点就不用我多说了吧,至于倒序的,相关判定条件反过来就好了。一定是left = mid +1 或者 right = mid -1。

2025-04-19 13:58:35 127

原创 C语言数组详解:基础、技巧与实战指南

数组(Array)是一组相同类型的元素的集合。由这句话我们知道,数组是一些元素的集合,那肯定至少有一个元素,不然没有一个元素的集合把它创造出来干什么呢?其次是这些元素都是同一类型的,比如:整型,字符型,浮点型等。元素是整型的数组叫整型数组,元素是字符型的数组叫字符数组,后面以此类推。数组分为一维数组和多维数组,多维数组就是二维及以上的数组。数组作为C语言的基础组成部分,是理解更复杂数据结构(如链表、树、图)的基础。掌握数组的正确使用方法,将为你的C语言学习打下坚实基础。

2025-04-16 14:10:04 798

原创 C语言字符数组的字符串输入和字符输入

在上次实现密码验证器的编写时,遇到了字符数组的问题,再经过一系列学习后是豁然开朗,今天笔者就来探讨一下C语言关于字符数组的字符串输入和字符输入的区别。strlen 是求字符串长度,从首元素开始计算,遇见 \0 停止。由于 arr2 没有 \0 ,所以strlen(arr2)的结果是一个随机值。sizeiof 是求数组大小,等于 数组有效元素*每个元素的大小。可以看出,sizeof 是把 \0 也算进去的。由上图就可以看出有无 \0 作为结尾的区别了。

2025-04-15 20:46:40 130

原创 C语言之密码验证器

密码验证器

2025-04-14 14:23:37 509

原创 C 语言转义字符:告别编译错误,玩转字符串!

掌握 C 语言的转义字符是编写高质量 C 代码的基础。它可以帮助你处理字符串中的特殊字符,控制输出格式,避免编译错误,让你的代码更加健壮和易于维护。希望本文能够帮助你更好地理解和运用 C 语言的转义字符,在 C 语言的世界里畅游!

2025-04-14 12:37:29 775

原创 开启C语言新征程

本人本科在读,已经在学校系统性得学习了一遍C语言,但是由于上课开小差,课后没联系等缘故,导致C语言一知半解,也就是个及格水平,现在,对硬件一头雾水,准备转向软件,我要开始重新学习C语言。有了前车之鉴,我认为学习C语言一定要脚踏实地,还要勤加练习,我觉得每天都应该敲代码,任务繁重就少敲一些,任务少了就多敲一些,最重要的就积累,时间的积累,代码行数的积累。我学习C语言的目的是为了更好的运用,也是为了日后找工作做准备,当然,要是顺带能接一些课设的单子也是不错的。

2025-04-13 23:40:56 170

原创 C语言之寻找水仙花数

C语言之寻找水仙花数

2025-04-13 21:43:01 203

原创 C语言分支与循环(上)----分支结构

C语言分支与循环是程序设计的基石。本文深入浅出地讲解if、else、switch等分支语句,以及for、while、do...while等循环结构。更有break和continue语句,助你灵活控制程序流程,编写高效代码!

2025-04-13 20:02:01 953 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除