C语言
文章平均质量分 83
C语言学习笔记
从头开始的小白
你我向上,家国向前。
展开
-
C语言_扫雷游戏
这篇博客是为了记录扫雷游戏的全部C语言代码。与前面记录三子棋游戏的博客一样,我会尽最大努力将扫雷游戏的所有细节都梳理出来。游戏介绍**总体来说:**扫雷游戏一开始会初始化一个棋盘,在棋盘中任意的位置埋好雷,然后玩家开始排雷,如果玩家将所有的雷的位置都找到,那么玩家胜利。具体细节:游戏开始,初始化一个棋盘,将雷埋好游戏第一步,玩家随机选个位置,开始排雷玩家排雷时有两个选择:直接排雷或者标记该位置为雷直接排雷时:如果该位置是雷,那么游戏结束,玩家失败;如果该位置不是雷,那么将这个位置周围雷的个数原创 2022-05-12 12:09:14 · 859 阅读 · 1 评论 -
C语言基础_递归函数
之前学习过的一些小算法,在许久不看之后又忘了。可能是当时学的时候追求速度,没有理解透彻,所以打算整理一下自己学习过的一些算法,先从递归函数开始吧!大二初学C语言遇到递归函数时,觉得很烧脑,虽然当时马马虎虎学了,但在我的印象深处总觉得递归函数是一个不大不小的高山,想翻越它需要费很大功夫,好了,废话不多说,开始整理吧!递归函数定义什么是递归?程序调用自身的编程技巧称为递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法原创 2022-04-02 11:57:34 · 4283 阅读 · 0 评论 -
C语言_动态内存管理
一个程序运行起来需要多少内存,我们在编程的时候往往是不知道的,比如说通讯录的存储,我们事先是不知道用户会存多少联系人。在C语言的初级阶段,我们对于内存的申请是静态的,比如说`int a = 4; int arr[20] = { 0 };`,我们定义int型的变量a,开辟了4个字节大小的内存,数组arr开辟了20*4个字节的空间,这些内存都是固定的。写代码时内存,开辟小了程序运行时可能会不够用,内存开辟过大又会造成空间的浪费。因此,动态管理内存是必不可少的。...原创 2022-07-22 23:41:15 · 252 阅读 · 0 评论 -
C语言_三子棋游戏
在这篇博客中,我将从头到尾整理三子棋游戏的代码,争取能将这个小游戏里面包含的细节能全整理出来。为什么要整理呢?因为我觉得如果不看任何参考能用C出一个小游戏,是一件蛮厉害的事情,要做到这件事情,需要对游戏的细节完完全全地掌握。当然,三子棋是个小游戏,实现这个游戏并不需要很多高深的技术,甚至连指针都不需要,单纯靠二维数组就可以做到。但是,实现这个小游戏还是蛮费劲的,需要一定的逻辑,实现过程就感觉跟做一道很长的数学分析证明题,尽管整个题的思路你很清楚,但做起来还是挺麻烦,一环套一环,要做到每个细节的准确才能做出来原创 2022-04-28 21:46:39 · 2768 阅读 · 0 评论 -
C语言_结构体、枚举、联合体
结构体、枚举、联合体这三者都具有类似的结构,都是将一些变量或者值整合放在一起,这样做可以增加代码的可读性,也能方便编程。这篇博客中将会整理结构体、枚举、联合体的相关概念,举例介绍他们的适用场景。...原创 2022-07-21 00:35:26 · 1001 阅读 · 1 评论 -
C语言基础_转义字符和操作符
转义字符其实就是对ASCII表中的某些字符前面加上转义符\,变成一个新的字符,用来表示没有专门符号的的字符,表格中的这些转义字符其实也有ASCII码值。例如,这行代码就是打印出\t的ASCII值,输出结果为9。在Visual Studio编译器中,左移的时候直接把二进制位的数字往左移动就行,给右边的位置直接补0;右移采用的是算术右移,需要考虑符号位,往有移动时,右边直接舍弃,左边补充符号位数字。关于移位操作符的使用例子,我将在位操作符这一部分列举。...原创 2022-04-11 21:42:48 · 1278 阅读 · 0 评论 -
C语言基础_随机数的生成
随机数的生成在一些游戏程序中会经常使用,我以前有很多次用到过,每次用的时候上网查一下代码怎么写,大致看一下就复制到自己的程序中,总是记不住随机数生成的原理。总之,随机数生成这两行简短的代码对我来说就像是“最熟悉的陌生人”,经常使用但是却不甚了解。所以今天写个博客好好记录一下。头文件要生成随机数,需要用到<time.h>中的库函数time().........原创 2022-04-18 11:46:21 · 2057 阅读 · 0 评论 -
C语言基础_一个错误的程序引出的知识点
今天记录一个错误的程序,原因是这个程序可以引出几个小的知识点,有助于初学者更好学习C语言。好了,直接看程序。目录问题引出运行结果调试结论问题引出#include <stdio.h>int main(){ int i = 0; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; for (i = 0; i <= 12; i++) { arr[i] = 0; printf("hehe\n"); } return 0;}看了这原创 2022-03-27 13:32:30 · 774 阅读 · 0 评论 -
C语言_程序环境和预处理
一个程序从编码到执行是一个比较复杂的过程,我对这个过程总是处于一个相对模糊的理解,虽然有反复看过这部分内容,但总是停留在表面。当我再次学习这个过程的时候,我忽然觉得我应该从实用的角度来理解这个过程。从编码到执行这个过程,每一步都是有实际的意义的,我觉得搞明白这些意义,是理解这个过程的重点。...原创 2022-07-26 10:02:57 · 508 阅读 · 1 评论 -
C语言_文件操作
本篇博客用于整理和介绍C语言中文件操作的相关知识,主要介绍基本的文件读写函数,并且举例演示如何使用这些函数。原创 2022-07-24 17:56:06 · 1201 阅读 · 0 评论 -
C语言_原码、补码、反码
什么是原码、反码、补码?为什么会有反码和补码?实际应用中如何快速转换原创 2022-05-30 18:35:40 · 1416 阅读 · 1 评论 -
C语言_模拟实现字符串操作库函数
模拟实现库函数-字符串操作函数原创 2022-07-14 19:02:49 · 501 阅读 · 0 评论 -
C语言基础_变量的作用域和生命周期
在最开始学习C语言接触到变量的作用域和生命周期这两个定义时,觉得很简单一看就会,自己写小程序时似乎也没遇到过相关问题,但是在做相关练习题时,总会因为一些坑导致做错,还有就是在变量前加上static关键字之后,情况也会变得复杂。所以写个笔记来记录一下。首先,需要了解作用域和生命周期的定义:作用域:(scope)程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。局部变量的作用域是变量所在的局部范围。全局变量的作用域是整个工原创 2022-03-24 12:35:41 · 683 阅读 · 0 评论