
c语言
文章平均质量分 66
L_XRUI
one day one day one day......
展开
-
简单的猜数字游戏,二分查找,杨辉三角
猜数字游戏:#include #include #include void Print_menu(){ printf("********请选择:**********\n"); printf("********1:开始游戏********\n"); printf("********0:退出游戏********\n");}void Guess_num(){ int input原创 2016-07-01 14:01:15 · 1358 阅读 · 0 评论 -
C语言实现继承与多态
在前面博客已经详细讲过C++中继承与多态的概念,在这里则只使用C语言的语法来实现继承与多态。继承:即派生类中拥有基类的成员变量和成员函数,所以C语言实现如下:#include typedef void(*Func)(void);void funB(){ printf("B::funB()\n");}typedef struct B{ int _b; Func _fb原创 2017-04-18 19:21:54 · 1028 阅读 · 0 评论 -
函数的可变参数列表
可变参数的产生:首先看一段简单求平均数代码:int average(int num,int v1,int v2,int v3,int v4){ return (v1+v2+v3+v4)/num;}#include int main(){ int ret=average(4,1,4,5,6); printf("%d\n",ret); return 0;}此代码中求平均值函数中原创 2017-04-18 18:16:03 · 1329 阅读 · 0 评论 -
局部、局部静态、全局、全局静态变量联系区别
局部、局部静态、全局、全局静态变量联系区别:首先明白6大作用域:全局作用域、局部作用域、文件作用域、命名空间作用域、语句作用域、类作用域1.从作用域区别:局部与局部静态变量作用与局部作用域;全局变量作用与全局作用域,若一个程序中有多个源文件,它定义与一个源文件,即所有文件都可以通过extern关键字使用全局变量,链接属性为外部;全局静态变量则作用与文件作用域,即当程序中有多个源原创 2017-03-27 14:18:30 · 1012 阅读 · 0 评论 -
动态内存开辟:new/delete,malloc/free区别与联系
本博客主要说明new/delete,malloc/free的区别与联系,如下:1.malloc/free为C的标准库函数,函数原型为:void* malloc(size_t size)//参数代表字节个数void free(void* pointer)//参数代表内存地址new、delete则为C++的操作运算符,它调用的分别为赋值运算符重载operator new()和operator原创 2017-03-17 16:17:56 · 4318 阅读 · 1 评论 -
动态顺序表的实现
对顺序表的动态开辟空间实现,并对顺序表进行操作,实现增删查改排序等一系列操作。代码实现:头文件SeqList.h:#include #include #include #include typedef int DataType;#define MAX_SIZE 3 //初始顺序表大小#define INC_SZ 3 //每次增容大小typedef s原创 2016-12-30 11:22:04 · 1135 阅读 · 0 评论 -
通讯录(文件版)三
前两篇通讯录分别为静态版和动态版的,在这一篇中则在前两篇基础上对通讯录使用文件的方式,运用fopen和fclose函数打开或关闭一个文件,并运用fread和fwrite实现对此文件以二进制方式的读(r)写(w)操作,从而就可以在此文件中保存每次用户所添加、删除等操作的联系人信息,并在下一次使用通讯录时这些联系人信息都会显示,不用重新输入。和以前两版本相同,分别定义三个文件,代码如下:con原创 2016-08-08 14:37:23 · 767 阅读 · 0 评论 -
结构体内存对齐的补充说明与总结
在第一篇博客已经对结构体内存对齐进行了一些简单的说明,在这篇则对其进行一些总结和补充说明:总结:结构体内存对齐中存在默认对齐数(不同平台不一致),VS中为8,Linux中为4,也可以自己设定,在VS中运用#program pack(4),可将8改为4,最后可以用 #program pack()取消;1:必须了解偏移值,如图:数字0、1、2、3、4、5、6、7、8原创 2016-08-06 21:30:36 · 867 阅读 · 0 评论 -
通讯录(动态版)二
上一篇通讯录是静态版的,在结构体中直接定义了一个容量大小为1000的数组Dhb[],在这一篇则是通过用malloc和free函数实现动态内存分配和释放,并运用realloc函数实现原分配内存的扩大或缩小,从而比静态版的通讯录更加节省空间,更加灵活,不会浪费内存空间或存在内存不够的问题。和静态版通讯录一样,分别定义三个文件,代码如下:contact.h#ifndef __CONTACT_原创 2016-08-06 12:58:52 · 616 阅读 · 0 评论 -
通讯录(静态版)一
用c语言实现一个静态版的通讯录(采用静态顺序表的方式)在这里分别用一个头文件contact.h封装结构体与函数声明,测试文件test.c封装主函数与测试函数,contact.c实现各个函数的功能...........contact.h#ifndef __CONTACT_H__#define __CONTACT_H__#include #include #include #i原创 2016-08-05 15:47:51 · 565 阅读 · 0 评论 -
三子棋小游戏
头文件game.h部分:#ifndef _GAME_H_#define _GAME_H_#include #include #include enum OP{ QUIT, PLAY};#define ROWS 3#define COLS 3typedef unsigned int uint;void init_board(char board[ROWS][COL原创 2016-07-22 22:37:45 · 681 阅读 · 0 评论 -
对于结构体中内存对齐的简单说明
结构体内存对齐的原因:在运行一个结构体时,编译器需要给结构体中的每个变量成员分配内存空间,如这样一个结构体中 typedef struct A { char c1; int i; int j; }A;对其内存空间分配问题进行分析,如若不进行内存对齐,它的内存空间是:char类型变量c1占1个字节,紧接着int类型变量i与j分原创 2016-05-08 23:50:24 · 1067 阅读 · 0 评论 -
单链表的基本操作
首先定义头文件,与单链表的基本结构:LinkList.h单元#include #include typedef int DataType;typedef struct LinkNode{ DataType data; struct LinkNode *next;}LinkNode,*pLinkNode;typedef struct LinkList{ LinkNode *原创 2016-06-13 18:33:13 · 1161 阅读 · 1 评论 -
各种小程序:(运动员名次与谁是凶手等)
/*5位运动员参加10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三B选手说:我第二,E第四C选手说:我第一,D第二D选手说:C最后,我第三E选手说:我第四,A第一比赛结束后,每位选手都说对了一半,请编程确定比赛的名次*/#include #include int main(){ int a=0; int b=0; int c=0; int d=0; i原创 2016-07-07 19:23:32 · 938 阅读 · 0 评论 -
宏总结
宏即代码替换,它可以替换数值字面值常量,字符串等非整型以及函数替换。如:#define MAX 1024 #define STRING "stringstring"#define SWAP(a,b) {a=a+b;b=a-b;a=a-b}1.宏的执行速度较快,一个程序到执行经过四个步骤,预处理、编译、汇编、链接,而宏则在预处理阶段已经将其代表的代码替换到程序中了;对于函数每次执原创 2017-04-19 15:19:40 · 946 阅读 · 0 评论