- 博客(5)
- 收藏
- 关注
原创 我的进程的地址空间的学习
上图为程序的源文件通过编译器翻译得到可执行程序,可执行程序运行加载到内存的过程 然而程序在运行的过程中堆栈发生了什么呢? 首先我们需要了解栈 栈是向下生长的,由内存的高地址到低地址,栈顶的地址比栈低的地址低 寄存器ebp称为帧指针或基址指针,指向栈底 寄存器esp称为栈指针,指向栈顶 例题 #include void fun() { int
2016-11-12 22:40:09 355
原创 我的扫雷游戏
扫雷游戏 分析:首先,我们应该创建一的二位数字组mine[ROWS][COLS],ROWS 设为10,COLS设为10,用来装我们的雷,在装雷之前,我们应该初始化这个二维数组,全部元素初始化为字符‘0’,初始化之后,我们紧接着布雷,确定雷的个数DEFAULT_COUNT为20,然后在二维数组的随机位置布下雷,使布雷的元素位置赋值为字符‘1’,这个二位数组装的是我们的雷,但玩家在玩时,若此位置不为
2016-11-09 20:17:40 200
原创 我的字符串自左向右旋转学习
实现一个函数,可以左旋转k个字符 分析:例如字符串 "abcde",左旋转1个字符,则将字符‘a’取出,放在一个内存中,将后面的4个字符从前至后依次向前移动一位,当取出两个字符时,将重复两次上面的操作。当k的值大于字符串的长度时,为提高程序的运行效率,我们用k%strlen(arr)代替k. #include #include void rolation(char *p,int k) { i
2016-11-08 22:15:24 325
原创 我的C可变参数的学习
首先举出一个简单的例子:实现可变参数求平均值函数 average #include #include int average(int n,...) { va_list arg; int i = 0; int sum = 0; va_start(arg,n); for(i=0; i<n; i++) { sum += va_arg(arg,int); } va_end(ar
2016-11-07 22:47:15 170
原创 一组数据中只有一个数字出现了一次和 一组数据中只有两个个数字出现了一次其他所有数字都是成对出现的。请找出这个数字
一组数据中只有一个数字出现了一次。 其他所有数字都是成对出现的。请找出这个数字 方法一(不用位运算) 分析:用两个for循环遍历整个数组,从前至后取出数组中的元素,每取出一个数,与后面的数依次比较,直到找到出现一次的数停止 #include #include int main() { int arr[]={1,3,5,7,1,3,5}; int i=0; int j=0;
2016-11-06 20:03:48 375
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人