0%

文件

  • 文件一般存储在外存(硬盘、光盘、U盘等)当中,而非内存中,文件可以分为文本文件以及二进制文件,其中文本文件保存的内容是字符串,而二进制文件保存的内容是二进制数据,每个文件末尾都有一个结束符,称之为EOF
  • 文件是通过操作系统进行管理的,每个文件都有一个独一无二的名字,文件的完整路径可分为绝对路径和相对路径。绝对路径是指从盘符开始一直到文件所在位置的目录的集合,而相对路径则以当前工作目录为基准,找到一个对应文件,想要用代码操作文件,需要先知道文件的路径。
阅读全文 »

内存的区域

在计算机中,内存可以被粗略的划分成,代码段、数据段、堆区以及栈区,

阅读全文 »

第一题

1
2
3
4
5
6
7
8
9
#include<stdio.h>

int main()
{
int a[5] = { 1, 2, 3, 4, 5 };
int* ptr = (int*)(&a + 1);
printf("%d,%d", *(a + 1), *(ptr - 1));
return 0;
}

上面这道题中,* (a + 1)即相当于a[ 1 ],此时a即为首地址元素
\&a则取到一个类型为inr( * )[5]的指针,此时再用(int*)强制转化成int *指针所以此时指针 ptr 指向数组a最后一个元素之后的一个int类型元素的地址。在输出的时候,解引用(a+1)即为a[1] = 2,解引用(ptr-1)即为a[4]=5。

阅读全文 »

strlen和sizeof本身的区别

szieof是一个运算操作符,在使用时无需声明头文件,它的参数可以是数据类型,数组,指针及函数等等
strlen是一个库函数,在使用前需要声明string.h头文件,它的参数必须是字符型指针(char* )

阅读全文 »

大小端字节序

小端:数字的低位存到内存的低地址上。
大端:数字的低位存到内存的高地址上。
_大端字节序符合平时直觉,一台机器大端还是小端,取决于CPU_

阅读全文 »

什么是函数?

在C语言中,函数又可以被称为 “子程序”,它是一个大程序的某一个部分,由一个或多个语句块构成,负责完成某项特定任务,而且相较于其他代码,其具备相对独立性,可以用它来实现代码的模块化。

阅读全文 »

首先我们需要分析扫雷游戏

在微软的扫雷游戏中,开始游戏后,雷已经随机埋好,当鼠标点击一个待排查点,假如是雷,则游戏结束,假如不是雷,则会显示周围一圈格子中雷的数量。实际上游戏的机制非常简单,但需要实现,还是得仔细分析。

  1. 需要两个数组(字符数组),一个用以存放雷的位置,一个用以向用户显示当前游戏状态,为了方便检测游戏中四条边的雷的数量,这里应将实际数组扩大一圈,比如游戏中看到的是8x8的格子,而在其内部应有一个10x10的二维数组来存放这些信息(通俗来讲就是扩大了一圈)。
  2. 利用srand函数和rand函数来生成随机坐标用以埋雷。用字符 ‘0’ 表示该地方没有雷,用字符 ‘1’ 来表示改地方有雷,最终给玩家显示的是一个由字符 ’ * ’ 组成的格子,当输入坐标时,若此地方有雷,游戏结束,没有雷则显示附近一圈的雷的数量。
  3. 用 ‘0’ ‘1’ 字符来贮存雷的原因是他们两个的ascii码值恰好差1,在计算当前格子周围有几个雷的时候,仅需将周围八个格子之和减去八乘以当前格子再加上字符 ‘0 ’即可。
  4. 两个二维字符数组一一对应!!
阅读全文 »

这是我作为一个初学者第一次尝试搞出来的东西,它不但可以实现三子棋游戏,通过修改#define的定义,还可以实现N子棋游戏。

首先,分析该游戏需要的逻辑

阅读全文 »