- 博客(13)
- 收藏
- 关注
原创 编写程序判断你的电脑存储方式是大端存储还是小端
首先解释一下为什么会有大小端概念,对于超过一个字节数据,在电脑上存储时需要跨越字节来存储,某些机器选择在存储器中按照从最低为有效字节到最高有效字节的顺序存储对象,而另一些机器则按照从最高为有效字节到到最低为有效字节的顺序存储,前一种存储方式被称为小端存储,后一种方式被称为大端存储。简单的记就是大大为大,小大为小。举例子,如图:对于16进制存储对于如何判断是大端还是小端我们可以采用编
2018-01-31 20:39:51 1561
原创 C语言注释行转换
头文件#ifndef __CONVERT_H__#define __CONVERT_H__enum{ NULSTAT, CSTAT, CPPSTAT, EOFSTAT,};函数实现部分#define INPUT"input.c"#define OUTPUT"output.c"void convert_main();#endif#define _CRT_S
2017-12-06 13:37:11 222
原创 数据结构静态顺序表
顺序表:用一段地址连续存储单元依次存储数据元素的线性结构。#define MAX_SIZE 10typedef int DataType;struct SeqList{DataType _array[MAX_SIZE];int _size;//顺序表中元素的个数}以上代码,就是创建一个顺序表,其中SeqList是整个顺序表的空间而size是顺序表中元素的个数。接下来我将用静态顺
2017-12-06 13:30:48 222
原创 回调函数详谈
回调函数即就是通过函数指针调用函数,如果你把函数的指针作为参数穿的给另一个函数,当这个函数用来调用其所指向的函数时,我们就说这是回调函数。举例子:到商场买手机,手机没货,店员留下了你的电话,过几天,店员打电话说有货了,然后你去商场买了手机,其中电话就是回调函数,电话留给店员就是登记回调函数,有货是触发了回调关联的事件,店员打电话是调用了回调函数,你到商场取货是响应回调事件。来看一个代码(使
2017-11-22 11:51:05 238
原创 模拟实现strncpy ,模拟实现strncat ,模拟实现strncmp
模拟实现strncpy:这个函数是将num个字符从源字符串拷贝到目标空间,如果源字符串的长度小于num,则拷贝完字符串后,在目标后面追加0,直到num个。看代码:char* my_strncpy(char*dest, const char*src, int n) { assert(dest); assert(src); char*p = dest; while (n
2017-11-22 10:26:18 395
原创 高级指针总结
指针数组首先声明,指针数组是数组,比如 int *arr1[10](是数组);char*arr2[4](是数组) char**arr3[5](是数组)。数组指针是指针,指针都有类型,那么,int*print是能指向整型数据的指针,[]比*的优先级高,但是int (*p)[10]确是数组指针,这个指针有能力指向一个数组。接下来来看一段代码:int arr[10]={0
2017-11-16 17:39:26 146
原创 用递归法和非递归法求第N个斐波那契数
1.递归法 #include#includeint fib(int n){if(n<=2)return 1;elsereturn fib(n-1)+fib(n-2);}int main(){int n=0;printf("请输入n");scanf("%d\n",&n);system("pause");return 0;}2.非递归法#include#inclu
2017-11-04 21:14:58 394
原创 浅谈对栈帧的理解
首先说明,栈帧的作用是函数调用时的过程记录,它存储在用户的栈上。了解栈帧的时候我们需要知道的知识:EBP:基址寄存器ESP:栈顶寄存器EIP:指令寄存器汇编语言知识:mov:把数据放到地址里。 call:默认将下一条指令地址压入栈中。ret:弹出栈顶地址,放在eip寄存器中;push:压变量入栈;pc指针:程序计数器,永远指向指令的下一条指令。接下来我们来看看栈帧的结构:
2017-11-04 19:29:31 1140
原创 三子棋小游戏实现
首先在写代码之前,得有整体的构思,包括棋盘的创建,玩家和电脑如何走,电脑随机数走在相当于二维数组的棋盘,如何判断谁赢谁输等一些问题,将三子棋游戏这个大问题,化为几个小部分,逐一完成。接下来看看代码吧:game.h#ifndef __GAME_H__ #define __GAME_H__ #include #include #include #d
2017-11-01 20:02:48 203
原创 数组运算重点总结
首先说明数组只能存放同一种数据类型,对于数组求长度可以用int length=sizeof(arr)/sizeof(arr[0]),数组从下标0开始访问的;1. 一维数组的创建 []中要给一个常量才行,不能使用变量。在创建数组时,如果不想说明大小就得初始化;接下来我们来讨论内存中如何分配:对于char arr1[]=”a,b,c”中存储时默认在后面还有一个’/0’,对于有{‘a’
2017-10-31 14:26:42 307
原创 宏定义浅谈 用宏定义交换数的奇偶位 用宏定义找出两个数最大值
1.什么是宏定义:宏定义是C语言提供的三种预处理其中的一种,这三种定义包含:宏定义、文件包含。条件编译,宏定义是对于文本进行替换,比如:#define MAX 1000 则这里就是用1000替换MAX ,需要强调的是,宏定义不做文件的检查,即不做类型的判断。2.定义宏函数:还是举例子说明:#define SQUARE(x) x*x 若在上述声明后把x设为5;则预处理器就会用5*5来
2017-10-22 20:16:19 397
原创 总结c语言操作符
我们可以把c语言中操作符理解为最基础的并且内置的函数,它们没办法被若干个未使用的同类型操作符的函数所替代。 在c语言中操作符可以分为以下几大类: 1.算数操作符,简单的说就是加减乘除运算即为+-*/,这里强调对于取余'%',操作数不能是浮点型,而对于除‘/’,如果操作数其中有浮点型,则结果一定是浮点型,而且整数除法会直接去除掉小数位。对于i++和++i,前者是先取变量本身的值然后做自
2017-10-08 12:18:05 270
原创 我编程的起点
我叫王嘉琪,是一名大三的计算机系的学生,平日里我热爱体育运动,喜欢音乐,但是你们一定想不到,我对编程有着深深的热爱。从第一次C语言上机实践,在Dos命令窗口下看到“Hello world!”,看着黑底白字,我就深深的被这种因为几行代码就能运行出来的程序深深的迷住了。 不单单是为了自己的兴趣,也是为了提升自己的编程能力,我决定列出我的编程目标:1,能发现编程的美丽之处,可以让我认识到一个完
2017-09-16 20:02:03 244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人