随笔分类 -  C

摘要:mem.h mem.c main.c 阅读全文
posted @ 2016-08-10 14:17 芬乐 阅读(292) 评论(0) 推荐(0)
摘要:打印环形链表void showitall(node *phead){ node *p = phead1; for(; p->pNext!=phead; p = p->pNext) { printf("%d", p->data) } printf("%d", p->data);}void main() 阅读全文
posted @ 2016-08-09 16:15 芬乐 阅读(267) 评论(0) 推荐(0)
摘要:1.链表合并 int main(){ node *phead1 = NULL;//头结点不分配内存 phead1 = addback(phead1, 2); //addback是在尾部添加节点,也就是将2插入怕head1链表的尾部。 phead1 = addback(phead1, 4); phea 阅读全文
posted @ 2016-08-09 10:35 芬乐 阅读(303) 评论(0) 推荐(0)
摘要:1.链表中节点的计数 int getnum(node * phead){ for(int i = 0; phead != NULL; i++,phead = phead->pNext) { }}这是一种装逼语句,有一个弊端就是执行完成之后,i 就不存在了。最好还是这么写int getnum(node 阅读全文
posted @ 2016-08-08 14:25 芬乐 阅读(274) 评论(0) 推荐(0)
摘要:1.开始时,一般首个数字代表key,初始时key等于 i ,j 为与 i 相邻的下一个数,当 key代表的数字大于 j 代表的数字时,就将 i ++,然后将 i 和 j 代表的数字交换,然后 j ++,反正不管怎样,每一次比较,j 都会++,这样到最后,i 的值就是最小值,然后将key的值与 i 的 阅读全文
posted @ 2016-08-06 13:19 芬乐 阅读(330) 评论(0) 推荐(0)
摘要:主要原因是if不是循环语句 像这样的: 补充 循环语句:for语句、while语句和do While语句 判断语句:if,switch,(好像就这两个吧,一时想不起来了) 四大跳转 : 无条件跳转语句 go to; 跳出循环语句 break; 继续跳出循环语句 continue; 返回值语句 ret 阅读全文
posted @ 2016-08-02 11:33 芬乐 阅读(6590) 评论(0) 推荐(0)
摘要:内存防泄漏(忘了用free释放内存了)劫持方法解决内存泄漏。1.使用自己写的mymalloc和myfree 替换malloc和free#include <stdio.h>#include <stdlib.h>//内存泄漏,第一强制调用mallocstruct mem{ void *p;//记录分配的 阅读全文
posted @ 2016-08-01 11:21 芬乐 阅读(243) 评论(0) 推荐(0)
摘要:1. int curr = pfind - parr->pstart; //指针相减确定下标printf("\n curr=%d", curr); //同类型相减,自动除以类型2. 宽字符\0占2个字节,在宽字符中1个字符占用2个字节,窄字符\0占1个字节,在窄字节中1个字符占用1个字节。宽字符只不 阅读全文
posted @ 2016-07-31 14:09 芬乐 阅读(125) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/hokyhu/archive/2009/03/30/1425604.html 为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太 阅读全文
posted @ 2016-07-31 10:42 芬乐 阅读(1145) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/fixer/archive/2013/05/14/3078660.html _exit(): 跟exit功能大致相同,区别在于_exit不会清空所有缓冲区,关闭所有I/O通道 exit(): 在调用时,会做大部分清理工作,但是决不会销毁局部对象,因 阅读全文
posted @ 2016-07-31 07:46 芬乐 阅读(225) 评论(0) 推荐(0)
摘要:切记,memcpy的头文件是memory.hstrcpy和memcpy主要有以下3方面的区别。1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所 阅读全文
posted @ 2016-07-27 17:45 芬乐 阅读(269) 评论(0) 推荐(0)
摘要:不常见的函数 1.strstr() 头文件:string.h 该函数用来检索子串在字符串中首次出现的位置。 char * strstr(char *str, char *substr) str是要检索的字符串,substr是要检索的子串。 返回字符串str中第一次出现子串substr的地址,如果没有 阅读全文
posted @ 2016-07-26 11:00 芬乐 阅读(268) 评论(0) 推荐(0)
摘要:1.编译器会为结构体变量中的每个数据成员分配不同的地址空间,编译器为共用体分配的是同一块内存,每个时刻只用一个数据成员有意义。 共用体:节约内存 共用体占用字节长度,取共用体中字节最长的成员。 几个成员共用一片内存。 2.共用体任何时侯只会出现其体内变量中的一个。 3.结构体成员的地址不同,共用体的 阅读全文
posted @ 2016-07-25 22:00 芬乐 阅读(767) 评论(0) 推荐(0)
摘要:1.位域:与位运算有关系,与结构体也有关系。 int a:4;表示a只占4位。这就是位域,限定数据的位数,主要是为了节约内存。 如果输入, int a:4; 那么默认是会留一个符号位,所以你可以用的就是3位。若需要无符号的需要加上unsigned。 2.类型相同是多个数据能重合就重合 。 3.若是类 阅读全文
posted @ 2016-07-22 15:47 芬乐 阅读(330) 评论(0) 推荐(0)
摘要:1.c++性能大概比c慢30%,但是开发效率要比c快很多。2.匿名结构体 : 锁定变量的个数#include <stdio.h>#include <stdlib.h> struct //匿名结构体{ int num; double db;}*p, x[10], z; 3.一个结构体或联合至少要存在一 阅读全文
posted @ 2016-07-21 11:49 芬乐 阅读(2981) 评论(0) 推荐(0)
摘要:走迷宫,注意那两个getchar,第二个getchar是为了接受换行符。 阅读全文
posted @ 2016-06-26 06:41 芬乐 阅读(219) 评论(0) 推荐(0)
摘要:不管是二分查找法还是拉格朗日法,必须先排序,否则无法使用。 插值查找发速度比二分查找法要快 插值查找法,数据均匀是1次找到,不均匀是多次,即使这样这样它也是快于二分的。 那个1.0挺重要的一个技巧,将那个比例变成实数。 插入排序法的精髓: 阅读全文
posted @ 2016-06-25 06:37 芬乐 阅读(430) 评论(0) 推荐(0)
摘要:1.句柄是操作系统内部某个对象或数据结构的唯一标识或编号 2.句柄含义可以这么理解,就是个标识,通过它可以找到对应的文件对象、设备对象、IO对象等等 3.一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚 阅读全文
posted @ 2016-06-23 06:26 芬乐 阅读(228) 评论(0) 推荐(0)
摘要:嵌套使用的时候else if和else遵循就近原则,和上面最靠近该语句的if语句匹配,要把else if看成是一个整体。就这么干,这样好理解一点。 一个if...else if...else语句中可以有多个else if语句,但是最多只能有一个else语句 if语句可以不需要else if或者els 阅读全文
posted @ 2016-06-22 06:58 芬乐 阅读(1993) 评论(0) 推荐(0)
摘要:1.‘0’,'\0',0按%d打印,分别是48,0,0,按%c打印,分别是0,空,空 2.逻辑表达式:&& || ! 3.关系表达式:<, <=, >, >=,==, != 共6种 4.goto语句中语句的标号必须以字母开头。 5.break必须用在循环体内部或者switch语句中。 6.getch 阅读全文
posted @ 2016-06-20 07:03 芬乐 阅读(352) 评论(0) 推荐(0)