菜鸟
文章平均质量分 75
hsynbnb
这个作者很懒,什么都没留下…
展开
-
由浅入深带你剖析数据的在内存中的存储(1)
浅谈 c本身具有的类型: 整型: char short int long long long 浮点型: float doubl 虽然 int 和 float都是4byte,但是视角不一样一个认为整型另一个认为浮点型。 int main() { signed short int a=0; unsigned short b=0; char c;//有符号?还是无符号? //取决于编译器,大部分的编译器下char就是signed char,其他数据类型也是同样的道理 }原创 2021-09-18 00:04:08 · 167 阅读 · 0 评论 -
又菜又爱玩的函数栈帧的创建与销毁
寄存器 寄存器 eax;ebx;ecx;edx 特别的 esp;ebp esp,ebp这两个寄存器是用来存放地址,来维护函数开辟的栈帧 函数每一次的调用都会在栈区开辟新的空间 调用逻辑 整体调用的逻辑 这里以一个简单程序为例子 #include<stdio.h> int Add(int x, int y) { int z = 0; z = x + y; return z; } int main() {原创 2021-09-11 06:48:24 · 613 阅读 · 0 评论 -
数据结构之排序算法及升级
选择排序 1.选择排序思路 第一组选择排序: 当看见一个数组,使用排序的思路其实就是找到数组中的最小值,然后将其与数组第一个元素进行交换,其目的是将最小值放在最前面。我们称这一个过程为一组排序 如图: 第二组选择排序: 将第一个元素排除形成一个新的数组再一次找到新数组的最小值 ,然后将最小值和新数组第一个元素进行交换 同样的第三组选择排序也是同样的原理进行一组选择排序剔除一个数形成一个新的数组。 图中例子的数组一共有十个元素那么需要进行多少组选择排序? 答案是9次.原创 2021-09-06 15:04:03 · 152 阅读 · 0 评论 -
C陷阱与与缺陷(1)
例子分析 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; } 代码很容易看出出现了越界,运行的结果也是死循环。出现这种情况我们就需要进行调试分析 当循环到arr[9]也就是i=10最后一个元素的时候.因为数组再内存中连续的空间所有虽然数组访问越...原创 2021-09-05 18:15:45 · 79 阅读 · 0 评论 -
从零开始的扫雷游戏
文件的创建 test.c :用于程序的测试 game.c:游戏函数的封装 game.h:头文件的声明 1.1main函数逻辑 首先得有菜单提供选项,输入有效数字后会出现三种情况 情况1:进行游戏同时也会产生 情况1-1:游戏结束后还想再玩一遍的情况。 情况2:退出游戏。 情况3:输入选项有错,重新输入。 有了这些分析可以判断出这个游戏是个循环语句,首先的出现菜单,当我选择选项的时候会进入游戏或退出游戏或者重新输入。这里抛出问题应该用什么循环语句,用什么判断语句呢?当程序运行时候应该先打原创 2021-08-23 16:47:24 · 239 阅读 · 0 评论 -
从零开始的三子棋
1.菜单界面 我们要建立test.c文件,game.c文件,game.h文件。test文件用检测程序game.c用来封装游戏的函数,头文件用来申明。 我们在设计游戏的界面的逻辑肯定是要有1.选择界面有进行游戏选项,有退出游戏的选项 2.这个游戏我们可以循环的玩。 有了以上的想法我们变需要个菜单用来选择,也要进行循环那这里用do while循环的效果会好一点因为相比其他循环 do while可以先讲菜单答应出在进行下一步的循环判断。这里我给出游戏菜单的代码 void meun() { printf原创 2021-08-09 19:26:15 · 108 阅读 · 0 评论