【C语言】
文章平均质量分 93
记录学习,专注于干货技术的分享
阿明6
加油!
展开
-
求最大公约数的几种常见的方法 【详解】
这里比较推荐是用 辗转相除法(欧几里得算法)和 《九章算术》中的 更相减损法多说一下,因为当时阿明浅浅学过遍辗转相除法,然后不久后就忘干净了,用的时候还要再去反复找,为了方便使用,干脆把 求解最大公约数 的几种常见的方法详细介绍一下,虽然不是最好,但是多少希望对大家有些帮助!希望大家对这些方法,有更加深刻的印象。加油!!!原创 2023-10-19 21:02:39 · 15733 阅读 · 40 评论 -
程序环境、预处理和宏
注意:预定义符号都是语言内置的__FILE__ 进行编译的源文件__LINE__ 文件当前行号__DATE__ 文件被编译的日期__TIME__ 文件被编译的时间__STDC__ 如果编译器遵循ANSI C,其值为1,否则未定义例如int main()int a = 0;return 0;例如注意 #define MAX 6 后面最好不要加分号,容易出错。原创 2023-10-19 16:40:11 · 266 阅读 · 51 评论 -
超级圣诞树(BC115) 【题解】超详细
前言这个题看了很久,没想出来,然后看了一些大佬的题解(可能是我的理解能力有些慢),中途有很多次放弃的想法,但是最终坚持着 ,研究明白了。所以想结合我的想法更加具体分享一下。原创 2023-10-09 19:40:25 · 1774 阅读 · 58 评论 -
文件操作【详解】
平时我们说的硬盘上的文件就文件当然在程序设计中,我们一般说到的文件有两种:程序文件、数据文件(从文件功能上来看)。1.程序文件源程序文件 (后缀 .c)目标文件(.obj)可执行程序(.exe)2.数据文件程序运行时读写的数据,需要输入输出的文件3. 文件名文件名包含三部分: 文件路径+文件名主干+文件后缀例如 d:\code\test.txt。原创 2023-10-09 19:42:24 · 1484 阅读 · 55 评论 -
动态内存管理
有时我们使用malloc和calloc函数进行动态内存分配的时候,我们发现所分配的空间已经固定下来,那木我们就会想 会不会有一种可以调整动态内存大小的动态分配的内存函数呢?所使用的内存就是栈内存,函数执行时自动分配内存,函数退出时自动释放内存。栈内存的特点是速度快,但分配的内存大小有限,可能会导致栈溢出。但是如果只是这样,有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。如果我们的代码是在一个给别人用的函数中,你在里面做了二次内存分配,并把整个结构体返回给。原创 2023-10-01 21:15:29 · 1184 阅读 · 78 评论 -
【C语言】通讯录
在通讯录中,我们一般保存联系人的信息,联系人的信息一般会有 姓名、年龄、性别、电话、地址等。在通讯录中,我们也会对一些信息进行增删改查。在这里我们发现switch 语句中 的case 选项中的常量表达式 是字母,这里主要是利用了枚举常量。这里采用的思想是 数组后面的元素前移将前面的元素覆盖来达到删除该信息的目的。上述是增加联系人的信息,既然增加联系人我们就来查看联系人信息。功能实现的前提是 先对通讯录 进行设计 并 初始化。contact.c 用于主要代码的功能实现。这里是直接调用的初始化通讯录函数。原创 2023-09-26 11:13:31 · 1733 阅读 · 58 评论 -
【C语言】自定义类型:结构体【结构体内存具详细】,枚举,联合
(1)声明类型的同时定义变量p1//结构体变量的定义和初始化int x;int y;}p1;//声明类型的同时定义变量p1(2)初始化,定义变量的同时赋值struct Stuint age;(3)结构体嵌套初始化struct Stuint data;//结构体嵌套初始化枚举就是列举enum ColorRED,GREEN,BLUEenum SexMALE,FEMALE,SECRET。原创 2023-09-19 14:31:34 · 1639 阅读 · 84 评论 -
【C语言】字符函数和字符串函数
(1)函数头部size_tstrlen(constcharstring(2)注意事项字符串以 '\0'作为结束标志,strlen函数返回的是在字符串'\0'前面出现的字符的个数(不含\0)参数指向的字符串必须要以\0结束函数的返回值是类型是 size_t 这是无符号整型(易错)(3)strlen的使用int main()//获取字符串的长度return 0;(4)strlen的模拟实现//普通实现count++;原创 2023-09-11 14:24:57 · 2021 阅读 · 69 评论 -
【C语言】指针 和 数组 笔试题详解
cpp[-2],这里的下标引用操作符的优先级高于*,先是cpp[-2],cpp[-2]相当于*(cpp-2),*(cpp-2)得到的是c+3,因为之前*cpp[-2]+3有一个解引用,所以*(c+3)得到字符串“FIRST”的首字符的地址,之后再+3则指向 S。这里ptr1[-1] 相当于 ptr1 -1, (int*)((int)a + 1);cpp[-1][-1]+1,首先确定cpp指向的是cp[2],然后cpp[-1][-1] +1相当于 * ( * (cpp-1) - 1) +1。原创 2023-08-23 23:14:16 · 1098 阅读 · 42 评论 -
【C语言】指针的进阶
]的优先级 高于 * ,所以 要加上()来保证p 先和 * 结合。原创 2023-08-19 09:26:14 · 1008 阅读 · 39 评论 -
【C语言】调试技巧
我们平时会口头说 bug ,报错,waring(报警)等,bug 英文的意思是虫子,然而在计算机发展史上的第一只 Bug ,真的是因为一只飞蛾意外走入一电脑而引致故障,因此Bug从原意为臭虫引申为程序错误。当我们这个时候就需要我们的调试 来开启新大陆关于程序错误的参考资料。原创 2023-08-15 22:24:49 · 1183 阅读 · 34 评论 -
【C语言】结构体详解
结构体类型 是一种 构造类型,它是由若干成员组成的,每个成员可以是一个基本数据类型或者是一个构造类型。结构体类型的名字 是由一个关键字 struct 和 结构体名 组成的结构体定义的一般形式:struct 结构体类型名类型说明符1 成员名1;类型说明符2 成员名2;int ID;typedef 类型重命名struct 是结构体关键字,不能省略。结构体类型名可以省略,称为无名结构体。结构体成员可以是任何基本数据类型,也可以是数组和指针类型。原创 2023-08-12 16:28:10 · 1681 阅读 · 14 评论 -
【C语言】操作符详解
如果 算术右移与 逻辑右移 总是分不清。原创 2023-08-09 20:25:24 · 1068 阅读 · 26 评论 -
【C语言】初阶指针详解
说到指针,那么我们还要了解一下内存,内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,原创 2023-08-10 23:14:19 · 411 阅读 · 9 评论 -
【C语言】扫雷 小游戏
输入排查雷的坐标,如果是雷则GAME OVER!,则如果不是雷,则显示该坐标周围有多少个雷。但是为了避免显示给玩家看的数字 1(雷的个数)与设置雷的 1 重合,所以选用 * 进行埋雷。(这里设置80个雷(用于测试排雷成功),所以只有一个安全)设置一个9*9的二维数组,0表示没有雷,1表示雷。因为扫雷 是扫周围的8个区域,会遇到扫越界问题。故变成11*11的二维数组。原创 2023-08-07 17:03:40 · 523 阅读 · 9 评论 -
【C语言】数据在内存中的存储详解( 大小端问题 )
大小端字节序指的是数据在电脑上存储的字节顺序大端(存储)模式,指的是数据的低位存储在内存的高地址中 ,而数据的高位存储在内存的低地址中小端(存储)模式,指的是数据的低位存储在内存中的低地址中,数据的高位存储在内存的高地址中巧记低低高高其中在 VS2022中,就是采用的小端模式。原创 2023-08-06 23:56:06 · 901 阅读 · 14 评论 -
【C语言】三子棋 小游戏
首先选手 分为玩家和电脑,各自轮流在棋盘上 下棋,玩家先其次电脑。函数功能实现主要在game.c中实现。写代码前理清代码逻辑很重要的。原创 2023-08-01 23:06:40 · 139 阅读 · 6 评论 -
【C语言】数组详解
c语言 数组 详解原创 2023-07-30 15:23:05 · 308 阅读 · 11 评论 -
【C语言】函数详解
C语言函数详解,从此对函数不在迷茫原创 2023-07-26 22:31:51 · 2862 阅读 · 15 评论 -
【C语言】分支语句和循环语句
表达式语句函数调用语句控制语句复合语句空语句其中分支和循环属于控制语句分支语句(条件判断语句):if语句、switch语句循环语句:do while语句、while语句、for语句转向语句:break语句、goto语句、continue语句、return语句。原创 2023-07-18 19:36:20 · 400 阅读 · 5 评论