
C语言
文章平均质量分 82
用来普及C语言知识
W…Y
长风破浪会有时,直挂云帆济沧海
展开
-
顺序表链表OJ题(3)——【数据结构】
【leetcode 142.环形链表II】、【leetcode 138.复制带随机指针的链表】详细分析以及代码分享。给定一个链表的头节点 head,返回链表开始入环的第一个节点。如果链表无环,则返回null。给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。这两道题都是想法比较前卫,一般方法比较困难的题,虽然用c语言比较麻烦,但是等到后面我们掌握了map以及哈希结构就会非常简单。原创 2023-08-29 19:05:50 · 2244 阅读 · 37 评论 -
顺序表链表OJ题(2)->【数据结构】
但是这道题是带哨兵位的链表简单些,因为有特殊情况,比如小于x的链表内容为空,如果我们我们进行合并,可能会丢失数据,所以我们得用很多if语句进行判断才行,但是有了哨兵位就不需要考虑这么多问题。使用快慢指针找到链表的中间节点,将中间节点后面的链表内容反转,然后用两个指针,一个在中间节点处,一个在链表最开始出,进行移动比较,如果都相同则为回文结构,反之则不是回文结构。这里我们还是基于快慢指针进行,如同数学中的追及问题一样,如果在一个环形跑到中,两个人速度不同,但是快的人落后于慢的人,快的人总会追到慢的人。原创 2023-08-28 18:41:37 · 1001 阅读 · 18 评论 -
C语言之#define以及预处理详讲解
对于#define的用法有很多,我在这里做一个大概的总结:1.表示静态数组的长度2.定义字符常量3.定义字符串常量4.定义宏(简单函数)原创 2023-07-31 02:37:44 · 1568 阅读 · 10 评论 -
还在为每次打开程序的输入烦恼吗,这篇文章让你不在迷茫
磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。我们在之前所用的scanf函数printf函数为什么不用打开标准输入流标准输出流,直接在函数中输入输出想要的内容即可。因为C语言程序中只要运行起来,默认就打开3个流。标准输出流stdin标准输出流stdout和标准错误流strerr。所以我们不需要再打开,但是文件输入输出就必须打开数据流。原创 2023-07-24 23:45:56 · 181 阅读 · 23 评论 -
玩转动态内存管理以及程序内存开辟——【C语言】
C语言提供了一个动态内存开辟的函数,我们先开看一下函数的原型:这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己 来决定。如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器。原创 2023-07-20 04:53:58 · 550 阅读 · 21 评论 -
手撕自定义类型:结构体,枚举,联合——【C语言】
有了结构体类型,那如何定义变量,其实很简单。int x;int y;}p1;//声明类型的同时定义变量p1(第一种)//定义结构体变量p2(第二种)//初始化:定义变量的同时赋初值。(第三种)struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化(第四种)//结构体嵌套初始化(第五种)以上五种方法全部都已代码的形式为大家展示清楚了。原创 2023-07-17 02:38:10 · 296 阅读 · 21 评论 -
玩转内存修改函数——【C语言】
在上篇博客中,我们学习了字符串函数,针对一些字符串我们可以做出一系列操作。接下来我们将学习一些内存修改函数(#inlcude),让我们一起走进mempy、memmove、memcmp函数中。原创 2023-07-15 16:41:35 · 2135 阅读 · 5 评论 -
玩转字符串函数与字符函数——【C语言】
字符串函数与字符函数的介绍!!!超详解!!!在C语言的学习中,我们经常会遇到字符串,对它的处理也是数不胜数,但是我们没有很好的处理办法,字符串只能放在字符数组或常量字符串中通过自定义函数去使用处理。而现在我将带领大家学习C语言函数库中专门处理字符串的函数。这些处理字符串的函数全部放在#include和#include中使用!接下啦让我们具体认识一下这些函数!!!原创 2023-07-14 03:07:39 · 344 阅读 · 9 评论 -
保姆级指针进阶教程——【C语言】
字符指针指针数组数组指针数组名VS&数组名数组指针的使用方法函数指针函数指针数组指向函数指针数组的指针里面全都有快过来看原创 2023-07-11 21:52:23 · 384 阅读 · 7 评论 -
排序之玩转qsort函数——【C语言】
说起排序,我们会想起许多算法,在之前的博客中我也写到过,比如:冒泡排序法、快速排序法、选择排序法等等。其实在C语言中一直有一个可以将数组中的内容进行排序的函数且功能完善内容齐全的库函数——qsort函数。今天就让我们来探索一下吧!原创 2023-07-10 14:18:37 · 543 阅读 · 3 评论 -
数据在计算机中的存储——【C语言】
在前面的博客中,我们已经学习了C语言的数据类型,先让我们回顾一下C语言中有哪些数据类型。原创 2023-07-08 21:19:42 · 532 阅读 · 7 评论 -
撕碎字符串反转【C】
首先我们对题目进行分析,反转字符串就是将数组中的元素位置进行互换从而达到效果,但是当我们对字符串前后进行互换时,会出现”.gnijieb ekil I"这与我们预先的目标不一致,这个题就特殊在这里。因为scanf函数在遇到字符串中的空格时会停止读,这时我们可以借助gets或fgets函数进行读取字符串,fgets是gets的升级版,gets无法避免读取数是否超过创建字符串的空间大小,而fgets就可以很好的避免。面对这个提也可以将字符串中的单词先反转,再将字符串反转得到的结果大同小异。原创 2023-05-27 21:08:47 · 117 阅读 · 7 评论 -
C语言实现strcpy函数和strlen函数
在操作字符串的函数大块中,其中有两个函数分别是strcpy和strlen函数,他们都是在#include中包含。strcpy函数可以将一个字符数组的内容放到另一个字符数组中,实现字符串拷贝,而strlen函数是求一组字符串的长度的函数。他们都由C库提供,方便程序员使用。今天我们将近距离还原这两个函数。原创 2023-05-23 23:37:28 · 235 阅读 · 1 评论 -
实用调试技巧——C语言
当我们想对一个程序进行调试的时候,我们在环境中先选中debug版本,这样代码才能正常运行调试。我们首先得学会使用快捷键:最常使用的几个快捷键:F5 启动调试,经常用来直接跳到下一个断点处。F9 创建断点和取消断点 断点的重要作用,可以在程序的任意位置设置断点。这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。F10 逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。原创 2023-05-22 15:51:19 · 129 阅读 · 3 评论 -
C语言结构体基础
int* p;double d;s1,s2,s3分别写出了三种结构体的初始化,我们可以进行参考。其中.是结构成员访问操作符。我们可以通过结构成员访问操作符来访问结构体中的内容。原创 2023-05-21 15:20:04 · 93 阅读 · 3 评论 -
C语言初阶指针
在c语言的学习中,我们都跳不过去一个东西,那就是指针,拿那什么是指针呢?我们先来了解一下。指针是内存中一个最小的单元编号,也就是地址,我们平时说的指针通常是指指针变量,用来存放内存地址的变量。我们就可以把大内存比作一个公寓,每个小内存相当于一个小房子,每个小房子都有一个自己的门牌号,这就相当于地址。一个小的内存单元只有一个字节,而在32位机器中就会有2的32次方种不同的编号,相当于2的32次方字节的内存,在64位机器中就有2的64次方的内存,每个内存单元都有一个编号,这个编号也被称为地址。原创 2023-05-18 13:52:49 · 137 阅读 · 7 评论 -
C语言表达式求值
表达式在计算过程中有哪些转换,表达式的求值顺序是怎么样的?这些都与表达式求值有很大关系。表达式求值的顺序一部分是由操作符的优先级和结合性决定的。有些表达式的操作数在求值的过程中可能需要转换为其他类型。类型转换:1.整型提升 2.算术转换 (都是以隐式类型的转换)原创 2023-05-13 21:49:22 · 133 阅读 · 2 评论 -
C语言操作符详解
当我们学习C语言时会遇到许多操作符,在许多语句中都能使用,可以起到举足轻重的作用。不要小看这些操作码,下面让我详细讲解一下操作符。操作符有很多:算数操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号操作符 ......原创 2023-05-12 15:09:27 · 141 阅读 · 3 评论 -
扫雷小游戏
今天我又给大家介绍款小游戏——扫雷。扫雷作为一款非常经典的电脑小游戏,深受大家喜爱,想必大家都玩过这款游戏。今天我们将用C语言实现扫雷游戏。我们先通过游戏来分析一下要做什么。通过三张图片我们可以看出,首先我们需要一9*9的表格,需要在表格中放入数字和雷,当玩家点击表格时,如果没有雷,我们在点击的格子中显示格子周围的其余八个格子中有无雷,如果有显示对应雷的个数,如果没有则显示0。如果有雷,我们将终止游戏并将所以雷的位置全部显示。分析完之后,我们将写我们的代码。原创 2023-05-11 01:08:24 · 217 阅读 · 3 评论 -
三子棋游戏
之前我们学过函数,数组,循环选择分支等等,我们今天就用现有的C语言知识编写一个小游戏——三子棋游戏。说到三子棋,我们应该先构思所需要的内容。1.构建一个游戏菜单界面2.创建一个3*3的棋盘3.选择先手(玩家先还是电脑先)4.轮流下棋流程5.判断胜负此次游戏代码将分为两大模块,主函数体系和游戏函数体系。原创 2023-05-09 16:40:38 · 209 阅读 · 5 评论 -
数字的排序
C语言中的数字排序法有很多:1.冒泡排序法2.选择排序法3.快速排序法4.比较排序法......原创 2023-05-08 00:09:52 · 1260 阅读 · 3 评论 -
C语言数组
当我们想要创建许多变量时,连续创建单个变量会非常麻烦,c语言为我们提供了一个非常简便的方法供程序员使用——数组那什么是数组呢,就是可以存放相同类型元素的集合。数组在c语言中有着举足轻重的作用。原创 2023-05-07 12:21:46 · 100 阅读 · 3 评论 -
汉诺塔问题
先将n-1的圆盘从a柱经过c柱移动到b柱上,进行第一个递归,当第一步完成后,然后将第n个圆盘从a柱移到c柱上去。最后在将n-1圆盘从b柱通过a柱移动到c柱上,进行第二次递归,最终完成汉诺塔游戏。那有两个圆盘时,我们先将第一个圆盘放到b柱上再将第二个圆盘放到c柱上,最后将在b柱上的小圆盘放到c柱上即可完成,一共用三步。那我们以此类推,现在有n个圆盘在a柱上,我们只需要使用上面所述的方法,将n-1个圆盘看作一个整体,把n-1个圆盘先挪到b柱上再将第n个圆盘挪到c柱上,最后将n-1个圆盘在挪到c柱上即可完成。原创 2023-05-05 22:41:18 · 277 阅读 · 4 评论 -
函数的递归
程序调用自身的编程技巧称之为递归。递归作为一种算法在程序设计中被广泛应用。它通过一个大型复杂的问题层层转化成一个个与原问题相似的小问题进行解决,通过自身调用层层嵌套来解决问题,递归只需要少量的程序代码就可以将重复多次的计算进行。原创 2023-05-04 14:35:50 · 160 阅读 · 1 评论 -
C语言函数基本
自定义函数顾名思义就是程序员自己造出来的函数,与库函数相比相同的是都有函数名、返回值类型和函数的参数,不同的是这些都是我们自己设计出来的函数。自定义函数的组成:statement;(语句项)ret_type 返回类型(int long double void 指针)fun_name 函数名称paral 函数参数(int long double void 指针)函数的参数大于等于0这个就是自定义函数的基本构成类型。//找出两个数之间的最大值int a = 0;int b = 0。原创 2023-05-01 19:42:15 · 127 阅读 · 1 评论 -
C语言中的循环语句
但是在某些情况下goto语句却非常好用,比如在一个多层嵌套的循环语句中,如果想要跳出循环,用break会非常的麻烦,因为break一次只能跳出一个循环体,在这种情况下,使用goto语句会非常的轻松便捷。do while循环和其他两个循环有所不同,其他两个循环都是先判断条件是否成立在进行循环,而do while循环是先循环在进行判断。在while循环中,初始化一般在循环外面,调整变量一般在循环里面,非常的凌乱,很容易造成死循环。for循环也可以进行嵌套,并且三条语句可以不止一个条件,可以大于等于1。原创 2023-05-01 06:00:00 · 102 阅读 · 0 评论 -
C语言的分支语句
if语句和switch语句原创 2023-05-01 00:00:00 · 94 阅读 · 1 评论 -
C语言中的数据类型
在早期的16位系统环境下,int是用2字节,long用4字节。就是创建了一个char类型的变量,其中ch是可以理解为这个变量的名字,而后面的‘w’就是给这个char类型的变量进行初始化赋值,使这个ch = ‘w’。每个数据类型都有自己在计算机中的存储大小,要想算出这些数据类型的大小,我们就要用c库中的一个函数sizeof(),sizeof是一个操作符,是计算机类型变量所占内存空间的大小。生活中有变量就有常量,常量就是有些值是一直不变的(性别,身份证,圆周率),还有一些可变的值(年龄,身高,电话)。原创 2023-04-30 03:15:00 · 124 阅读 · 3 评论 -
C语言中的语句
c语言可分为以下五种语句:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句。原创 2023-04-30 00:20:22 · 167 阅读 · 2 评论 -
c语言历史以及main主函数的剖析
c语言代码的分析原创 2023-04-29 21:32:23 · 198 阅读 · 1 评论