编程
Rae8023
这个作者很懒,什么都没留下…
展开
-
【栈帧】深入理解函数的调用(栈帧)
在了解栈帧之前,让我们首先了解一些有关栈帧的基础知识。 什么是栈? 在计算机系统中,栈则是一个具有以上属性的动态内存区域。程序可以将数据压入栈中(入栈,push),也可将数据从栈顶弹出(出栈,pop)。先入栈的数据后出栈。 一个函数的活动记录用esp和ebp这两个寄存器划定范围。esp寄存器始终指向栈的顶部,ebp寄存器指向函数活动记录的一个固定位置,ebp寄存原创 2017-01-09 23:16:09 · 571 阅读 · 0 评论 -
【C语言】编写一个函数返回参数二进制中1的个数。
编写一个函数返回参数二进制中1的个数。自己写了一下,觉得挺有意思,总结了3个方法 : 第一种方法:#include<stdio.h>int main(){ int num = 10;//10的二进制位1010 int count = 0; while (num != 0) { num = num&(num - 1);//(1)1010&1001=原创 2017-01-09 23:32:50 · 589 阅读 · 0 评论 -
【扫雷】C语言编写的小程序扫雷
首先创建一个项目,建立一个头文件game.h,两个源文件game.c和test.c game.h代码片:#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<string.h>#define ROWS 10//行数#define COLS 10//列数#define MINE 2原创 2017-01-10 21:03:23 · 1123 阅读 · 1 评论 -
【三子棋】C语言小程序三子棋
首先创建一个项目,建立一个头文件game.h,两个源文件game.c和test.c game.h代码片:#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<string.h>#define COLS 3#define ROWS 3void init_borad(int arr[R原创 2017-01-10 22:32:48 · 980 阅读 · 0 评论 -
[C语言]strlen与sizeof的区别与联系
strlen原型:size_t strlen( const char *string ); strlenC语言中的一个函数,用于计算字符串的(unsigned int型)长度,不包括’\0’在内。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始遍历,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值。原创 2017-02-17 11:29:41 · 735 阅读 · 0 评论 -
【C语言】理解指针数组 数组指针 函数指针
首先我们来看一下指针与数组的区别: 指针数组与数组指针 指针数组:储存指针的数组 首先它是一个数组,数组的元素都是指针,数组占多少字节由数组本身决定。 例如: int *arr1[5]; //”[ ]”的优先级高于”*”,首先它是一个数组,数组名为arr,int *修饰的是数组的内容,数组中包含5个指向int数据的指针。 **数组指针**:指向数组原创 2017-02-15 09:53:17 · 958 阅读 · 0 评论 -
【顺序表】用c语言简单实现顺序表
今天,写了一个简单的顺序表,跟大家分享一下(我是先写的静态,后改的动态,中间的一些注释是原来的静态):test.h#ifndef __SEPLIST_H__#define __SEPLIST_H__#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>//#define MAX 100#defin原创 2017-02-23 22:33:59 · 1273 阅读 · 0 评论 -
序列化和反序列化
什么是序列化和反序列化?把应用层的对象转换成一段连续的二进制串,或者反过来,把二进制串转换成应用层的对象–这两个功能就是序列化和反序列化。 序列化:把对象转换为字节序列的过程称为对象的序列化。 反序列化:把字节序列恢复为对象的过程称为对象的反序列化数据结构、对象与二进制串不同的计算机语言中,数据结构,对象以及二进制串的表示方式并不相同。数据结构和对象:对于类似Java这种...原创 2018-08-13 13:45:59 · 294 阅读 · 0 评论