
c语言
文章平均质量分 86
Code Warrior
我会在学习编程的过程中将自己所学的编程知识分享到博客上来,希望在巩固知识的同时,也能和各位大佬多多交流~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言游戏实战(4):人生重开模拟器
人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。原创 2024-06-04 20:09:06 · 29403 阅读 · 31 评论 -
c语言游戏实战(8):飞机大作战
飞机大作战游戏是一种非常受欢迎的射击类游戏,玩家需要控制一架战斗机在屏幕上移动,击落敌机以获得分数。本游戏使用C语言编写,旨在帮助初学者了解游戏开发的基本概念和技巧。在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能:游戏界面:游戏界面是一个矩形区域,玩家可以在这个区域内控制战斗机移动和射击。战斗机:玩家控制的战斗机可以在游戏界面内自由移动,按下特定键可以发射子弹和开启技能击落敌机。敌机:敌机会从屏幕的一侧出现,并沿着直线路径向另一侧移动。玩家需要击落敌机以获得分数。原创 2024-06-07 23:11:34 · 17609 阅读 · 21 评论 -
【C语言】预处理详解
define reg register //为 register这个关键字,创建⼀个简短的名字;) //⽤更形象的符号来替换⼀种实现case //在写case语句的时候⾃动把 break写上。// 如果定义的 stuff过⻓,可以分成⼏⾏写,除了最后⼀⾏外,每⾏的后⾯都加⼀个反斜杠(续⾏符)。#define 机制包括了⼀个规定,允许把参数替换到⽂本中,这种实现通常称为宏(macro)或定义宏(define macro)。原创 2024-06-05 21:54:18 · 843 阅读 · 0 评论 -
【数据结构初阶】栈和队列
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)(即最后面进的数据会最先出来)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。原创 2024-06-06 22:04:48 · 825 阅读 · 0 评论 -
C语言游戏实战(12):植物大战僵尸(坤版)
本游戏使用C语言和easyx图形库编写,通过这个项目我们可以深度的掌握C语言的各种语言特性和高级开发技巧,以及锻炼我们独立的项目开发能力,在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能:游戏界面:游戏界面是一个矩形区域,玩家可以在区域内进行植物的放置和铲除等操作。不同的植物有不同的功能,在这里我们可以僵尸植物分为三大类:1. 生产型植物(如太阳花):这种植物的特点是在一定的时间生产出太阳,以增加太阳的产量。原创 2024-06-10 19:07:24 · 129215 阅读 · 187 评论 -
【C语言】文件操作
每个被使⽤的⽂件都在内存中开辟了⼀个相应的⽂件信息区,⽤来存放⽂件的相关信息(如⽂件的名字,⽂件状态及⽂件当前的位置等)。我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出 操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化的保存,我们可以使⽤⽂件。原创 2024-06-01 23:56:40 · 1680 阅读 · 2 评论 -
C语言游戏实战(9):球球大作战
这款简易版的球球大作战是一款单人游戏,玩家需要控制一个小球在地图上移动,吞噬其他小球来增大自己的体积。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解的基本概念和技巧。在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能:游戏界面:游戏界面是一个矩形区域,玩家可以在这个区域内控制球的移动。玩家小球:玩家控制的小球可以在游戏界面内自由移动,按下空格键可以加速。其他小球:其他小球又分为食物小球,和ai控制的小球。原创 2024-06-03 21:27:17 · 129031 阅读 · 132 评论 -
【C语言】自定义类型:联合体和枚举
像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间所以联合体也叫:共⽤体。因为共用着一块空间,所以当给联合体其中一个成员赋值,其他成员的值也跟着变化。原创 2024-06-08 23:23:40 · 1334 阅读 · 0 评论 -
动态内存管理
但是上述的开辟空间的⽅式有两个特点:• 空间开辟⼤⼩是固定的。• 数组在申明的时候,必须指定数组的⻓度,数组空间⼀旦确定了⼤⼩不能调整但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间⼤⼩在程序运⾏的时候才能知道,那数组的编译时开辟空间的⽅式就不能满⾜了。C语⾔引⼊了动态内存开辟,让程序员⾃⼰可以申请和释放空间,就⽐较灵活了。原创 2024-06-08 23:23:51 · 1338 阅读 · 0 评论 -
C语言游戏实战(11):贪吃蛇大作战(多人对战)
这款贪吃蛇大作战是一款多人游戏,玩家需要控制一条蛇在地图上移动,吞噬其他蛇或者食物来增大自己的蛇身长度和宽度。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能:1. 游戏界面:游戏界面是一个矩形区域,玩家可以在这个区域内控制蛇的移动。2. 玩家贪吃蛇:玩家控制的小球可以在游戏界面内自由移动,按下空格键可以加速。3. ai贪吃蛇:ai贪吃蛇会在游戏界面中随机移动。原创 2024-05-19 23:56:05 · 3455 阅读 · 10 评论 -
【C语言】字符函数和字符串函数
在编程的过程中,我们经常要处理字符和字符串,C语言标准库中提供了一系列库函数,接下来我们一起学习一下这些函数。原创 2024-03-25 11:59:17 · 1996 阅读 · 14 评论 -
c语言游戏实战(10):坤坤的篮球回避秀
这款简易版的球球大作战是博主耗时两天半完成的,玩家需要控制坤坤在游戏界面上移动,来躲避游戏界面上方不断掉下来的篮球。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能:游戏界面:游戏界面是一个矩形区域,玩家可以在这个区域内控制球的移动。坤坤:玩家控制的坤坤可以在游戏界面内自由移动,按下特定的按键后可以跳跃。篮球:篮球在游戏界面的正上方源源不断地生成,并下降。原创 2024-06-04 20:09:21 · 29930 阅读 · 62 评论 -
【c语言】深入理解指针(2)
可以利用字符指针存放字符数组来间接存放字符串。那我们可不可以直接给字符指针存放字符串呢?我们来看一下结果:可以看到是可以直接给字符指针存放字符串,其实指针仅仅存放了字符串首字母的地址,%s会根据这个首字母的地址依次打印字符,当遇到空字符‘\0’则会停止打印,从而打印出了完整的字符串。字符指针存放字符数组的字符串可修改,而存放字符串字面量不可修改,因为。原创 2024-02-07 10:34:05 · 3019 阅读 · 0 评论 -
C语言指针(下)
上文我们已经学习了指针的基本概念内存单元地址的产生,以及指针和指针的类型。这时我们对指针已经有了一个初步的了解,接下来我们将继续深入的学习指针用法。原创 2023-12-23 16:43:50 · 847 阅读 · 1 评论 -
汉诺塔问题
Hanoi(汉诺)塔问题。这时一个古典的数学问题,是一个递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座 A,B,C(如下图)。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。原创 2024-01-02 22:45:03 · 1645 阅读 · 0 评论 -
【c语言】详解操作符(下)
在上文中,我们已经学习了、反码、补码、移位 操作符、移位操作符、位操作符、逗号表达式、下标访问[ ]、函数调用( ),接下来我们将继续学习剩下的操作符。原创 2024-03-24 16:00:37 · 1748 阅读 · 1 评论 -
冒泡排序与选择排序
选择排序与冒泡排序异曲同工,冒泡排序是先排大的数,而选择排序则是先排小的数。原创 2023-12-14 00:03:15 · 701 阅读 · 1 评论 -
c语言二分查找
二分查找法算法,也叫折半查找算法(对半处理会提高寻找目标数字的效率);作用:在一串有序的数字中,能快速寻找到你输入的数字,是一种很高效的查询算法。原创 2023-12-19 23:55:18 · 702 阅读 · 0 评论 -
自定义乘法口诀表
我们观察乘法口诀表可以发现,每行中第一个乘数是依次递增的,直到增加到与第二个乘数相等为止,而每行中第二个乘数是不变的,而且从第二行开始第二个乘数是相比于上一行增1的。因为每行中第二个乘数是不变的,所以第二个乘数应该是由外for循环执行,第一个层数是由内for循环执行的,由于第一个乘数最后值是等于第二个乘数的所以下面的代码是 j原创 2023-12-18 10:42:42 · 678 阅读 · 0 评论 -
c语言结构体
结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。原创 2023-12-26 23:20:48 · 1732 阅读 · 1 评论 -
【c语言】深入理解指针(1)
数组名是数组首元素的地址:但是有两个例外:1. sizeof(数组名),sizeof中单独放一个数组名的时候,这里的数组名表示的是整个数组,计算的是整个数组的大小,单位是字节。2. &数组名,这里的数组名表示的是整个数组,取出的是整个数组的地址(整个数组的地址和数组首元素的地址是有区别的)。可以看到&arr + 1后地址是跳过40个字节的(这刚好是整个数组的大小),而其余两种的+1都只是跳过4个字节(这刚好是整型变量的大小)而已。原创 2024-02-01 18:44:24 · 1211 阅读 · 3 评论 -
【c语言】函数递归
在C语⾔中每⼀次函数调⽤,都要需要为本次函数调⽤在栈区申请⼀块内存空间来保存函数调⽤间的各种局部变量的值,这块空间被称为运⾏时堆栈,或者函数栈帧。原创 2024-01-30 00:17:43 · 1701 阅读 · 4 评论 -
【c语言】详解操作符(上)
整数的2进制表示方法有三种,即原码、反码、补码有符号整数的三种表示方法均有符号位和数值位两部分,2进制序列中,最高位的1位是被当做符号位其余都是数值位。符号位都是用0表示“正”,用1表示“负”。例:分别写出1、-1的2进制其中a、b都是整形变量,是4个字节,32bit位,那么a、b的2进制为:直接将数值按照正负数形式翻译成2进制得到的就是原码。将原码的符号位不变,其他位依次按位取反就可以得到反码。反码加1就可以得到补码。补码得到原码也是可以使用取反加1的操作。原创 2024-03-24 16:01:21 · 2671 阅读 · 2 评论 -
c语言游戏实战(7):扫雷(下)
扫雷是一款经典的单人益智游戏,它的目标是在一个方格矩阵中找出所有的地雷,而不触碰到任何一颗地雷。在计算机编程领域,扫雷也是一个非常受欢迎的项目,因为它涉及到许多重要的编程概念,如数组、循环、条件语句和函数等。C语言是一种广泛使用的编程语言,它具有高效、灵活和可移植等特点,非常适合编写各种类型的应用程序。因此,使用C语言编写一个扫雷游戏是一个很好的学习编程的项目。在这篇博客中,我们将介绍如何使用C语言编写一个简单的扫雷游戏。我们将从基本的编程概念开始讲解,逐步深入到更复杂的程序设计技术。原创 2024-01-17 12:50:31 · 2535 阅读 · 1 评论 -
c语言游戏实战(6):走迷宫之推箱子
在上一篇文章当中我介绍了一个走迷宫的写法,但是那个迷宫没什么可玩性和趣味性,所以我打算在迷宫的基础上加上一个推箱子,使之有更好的操作空间。原创 2024-01-16 18:28:16 · 1795 阅读 · 4 评论 -
c语言游戏实战(5):走迷宫
制作一个迷宫游戏是一个有趣的编程挑战。首先,我们需要设计一个二维数组来表示迷宫的布局,其中每个元素代表迷宫中的一个格子。我们可以使用不同的值来表示空格、墙壁和起点/终点。接下来,我们需生成迷宫。在生成迷宫的过程中,我们需要确保迷宫中有足够的障碍物,以便玩家需要找到一条从起点到终点的路径。最后,我们需要编写代码来显示迷宫,接收用户的输入,更新迷宫的状态,判断游戏是否结束,并提供重新开始的选项。通过完成这个迷宫游戏项目,我们可以提高自己的编程能力和逻辑思维能力。原创 2024-01-15 13:08:27 · 5267 阅读 · 12 评论 -
vs实用调试技巧
我们在写程序的时候可能多多少少都会出现一些bug,使我们的程序不能正常运行,所以为了更快更好的找到并修复bug,使这些问题迎刃而解,学习好如何调试代码是每个学习编程的人所必备的技能。原创 2024-06-06 22:04:59 · 1635 阅读 · 4 评论 -
c语言游戏实战(3):三子棋
三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子走成就视为胜利。但因棋盘太小,三子棋在很多时候会出现和棋的局面。原创 2024-06-07 23:10:47 · 5048 阅读 · 4 评论 -
C语言指针(上)
指针变量里边存放的是地址,而通过这个地址,就可以找到一个内存单元(内存划分了一个一个单元,而一个单元就是一个字节,其中内存单元的地址不是需要存起来的,因为它是由硬件生成的,硬件生成一个地址后直接去内存里面访问他这个编号所对应的内存单元)。在32位的机器上,地址是32个1和0组成的二进制序列,那地址就得用4个字节(存一个0或者1用一个比特位那么存32个1和0组成的序列就需要32个比特位也就是32/8 == 4个字节)的空间来储存,所以一个指针变量的大小就应该是4个字节。指针本质上就是地址。原创 2023-12-22 01:24:34 · 1624 阅读 · 0 评论 -
c语言游戏实战(2):扫雷
先开一个test.c文件用来游戏的逻辑测试,在分别开一个game.c文件和game.h头文件用来实现游戏的逻辑。原创 2023-12-12 00:51:16 · 1888 阅读 · 0 评论 -
揭秘c语言数组的用法,让你的编程能力更进一步
数组的下标时从0开始的然后一次往后递增1,即数组第一个数的下标是0,第二个数是1.原创 2023-12-13 12:26:27 · 1042 阅读 · 4 评论 -
揭秘C语言神技!轻松搞定1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100,让你成为编程大神!
for循环中i的取值因为前面直接取a = 1了所以是直接从求奇数和那个for循环i就是从i / 3开始的所以i的初始值为3,以此类推我们就可以知道另一个for循环的i初始值应该取2(或1)。+ 1 / 99 - 1 / 100的计算我们可以知道它的规律是: 1 / n(n=1,2,3,..,100),当n为偶数式子中是减去1 / n,当n为奇数时式子则加上 1 / n,所以我们可以用if(n%2==)函数来判断奇偶性, 以此来判断式子中各个数字增减性。这时我们可以将式子写成。原创 2023-12-08 01:50:07 · 938 阅读 · 0 评论 -
揭秘C语言:分支与循环的神秘力量,让你的程序瞬间升级!
|:或运算符,(exp1||exp2)式子中两个表达式只要有一个为真,式子即为为真。&&:并运算符,(exp1&&exp2)式子中两个表达式只要有一个为假,式子即为假。exp1表达式为真的话执行表达式exp2。default 结果错误:输出,后加一个break跳出语句。case 结果1:输出1,后加一个break跳出语句。case 结果2:输出2,后加一个break跳出语句。例子:输入a,b如果a>b输出a否则输出b。例如:输入1234,输出4 2 3 1。例子:输入一个整数,判断是否为奇数。原创 2023-12-05 12:09:33 · 982 阅读 · 0 评论