一个合格的通讯录,应该支持增、删、查、改这四个基本操作,同时,我在这个通讯录中也运用了内存的动态管理与文件操作的知识,同时这个通讯录可以支持按照联系人姓名进行排序。
C语言中的文件操作
(C语言)内存的动态管理
C语言中的自定义类型(结构体、枚举及联合)
一些库函数的模拟实现合辑(字符串+内存函数)
C语言关于指针的几道面试题(烧脑预警)
第一题
1 | #include<stdio.h> |
上面这道题中,* (a + 1)即相当于a[ 1 ],此时a即为首地址元素
\&a则取到一个类型为inr( * )[5]的指针,此时再用(int*)强制转化成int *指针所以此时指针 ptr 指向数组a最后一个元素之后的一个int类型元素的地址。在输出的时候,解引用(a+1)即为a[1] = 2,解引用(ptr-1)即为a[4]=5。
C语言中对于数组strlen和sizeof的各种情况及分析
关于原码、反码及补码的一些总结
关于C语言中函数的一些认知
一个简单的扫雷游戏(是真的简单)
首先我们需要分析扫雷游戏
在微软的扫雷游戏中,开始游戏后,雷已经随机埋好,当鼠标点击一个待排查点,假如是雷,则游戏结束,假如不是雷,则会显示周围一圈格子中雷的数量。实际上游戏的机制非常简单,但需要实现,还是得仔细分析。
- 需要两个数组(字符数组),一个用以存放雷的位置,一个用以向用户显示当前游戏状态,为了方便检测游戏中四条边的雷的数量,这里应将实际数组扩大一圈,比如游戏中看到的是8x8的格子,而在其内部应有一个10x10的二维数组来存放这些信息(通俗来讲就是扩大了一圈)。
- 利用srand函数和rand函数来生成随机坐标用以埋雷。用字符 ‘0’ 表示该地方没有雷,用字符 ‘1’ 来表示改地方有雷,最终给玩家显示的是一个由字符 ’ * ’ 组成的格子,当输入坐标时,若此地方有雷,游戏结束,没有雷则显示附近一圈的雷的数量。
- 用 ‘0’ ‘1’ 字符来贮存雷的原因是他们两个的ascii码值恰好差1,在计算当前格子周围有几个雷的时候,仅需将周围八个格子之和减去八乘以当前格子再加上字符 ‘0 ’即可。
- 两个二维字符数组一一对应!!