- 博客(17)
- 收藏
- 关注
原创 C语言可变参数列表编程
最近在看一份代码,想定义一些自己的打印信息。但是其中涉及到C语言可变参数的编程,虽然之前了解相关的内容,但还不是很熟练,不得不重新温故一下。如下代码权当记录基本的用法,很多原理还说不上来。#include #include #include void print_arg(int num,va_list arg);float average(int num, ...);
2015-11-29 22:19:14
701
原创 C/C++中的取地址与引用
函数调用的时候,引用相对于指针来说更高效、跟简便。因为指针传参的实质还是传值调用,copy地址需要开销,而引用直接被编译器优化。有些时候需要二级指针的地方,使用指针的引用会使问题简化很多,我在对树的操作的时候就碰到过,大家可以感受一下。
2014-09-09 11:14:53
9877
1
原创 Linux进程控制
#include #include #include #include #include /********************************************************************************** MAIN** getpid(),getpp
2014-09-09 10:28:59
614
原创 Linux时间编程
#include #include #include #define PRINT_EXE_TM(fun) printf("the "#fun"() executed for %fs\n",executivetime(fun))float executivetime(void (*function)(void));char * currenttime(void);char *
2014-09-09 10:21:52
575
原创 二叉树的创建及遍历
#include #include #include typedef struct node{ char data; struct node *leftchild; struct node *rightchild;}TreeNode,*TreeNodePointer;void PreOrderCreation(TreeNodePoint
2014-09-04 09:59:32
627
原创 普通模式匹配
#include #include /******************************************匹配*s:源字符串,t:目标字符串****************************************/int match(char *S,char *t){ int i=0,j=0; while(S[i]
2014-09-04 09:41:10
573
原创 循环队列
#include #include #include #define MAX_SZ 10typedef char data_type;typedef struct{ data_type * data_array; //定义指向存储数据的空间的指针 int rear; int head;}QueueType,*Que
2014-09-04 09:11:46
542
原创 链式堆栈
#include #include typedef char data_type; //数据类型typedef struct filo{ data_type data; struct filo *former; //指向前一个单元}Stack_type,*Stack_pointer;void StackInit(St
2014-09-04 09:02:33
552
原创 线性堆栈
#include #include #define MAXSZ 100#define NO_SENSE_DATA ' 'typedef char data_type;typedef struct{ data_type space[MAXSZ]; int top;}STACK;void StackInit(STACK* st
2014-09-04 08:43:02
570
原创 哈夫曼编/译码器
#include #include #include #define CODE_LENGTH 100 //编码的最大长度/*该结构体用来存储哈夫曼树的节点*/typedef struct node_structure{ int weight; //权值 char ch; //节点的字符信息 struct node_stru
2014-07-03 12:29:08
1119
原创 KMP模式匹配算法实现
/** \brief KMP模式匹配 * * \param * \param * \return * */#include #include /****************************************************如果START_INDEX为1,则表示:本程序中字符数组从1号元素开始存储字符,0号元素存储字
2014-06-24 01:28:48
632
原创 指针数组&数组指针
#include #include #define COL 5#define ROW 4int main(){ int a[5][COL]; int (*p)[COL]; //数组指针 int *np[COL]; //指针数组 int i,j; for(i=0;i { for(j=0;j
2014-04-22 17:30:32
697
原创 链接属性
与作用域不同的是,链接属性讨论的是标识符在工程内被访问的范围。 链接属性分为external,internal和none。具有external属性的标识符无论被申明多少次、无论申明处在多少个文件中,其始终被编译器当作一个实体。具有一internal属性的标识符多次申明在同一文件中时被当作同一实体,申明在不同文件中时被当作不同实体。具有none属性的标识符每申明一次被当作一个
2014-04-01 20:08:44
809
原创 作用域
作用域讨论的是标识符在文件中可以被访问的范围。变量作用域分为文件作用域、代码块作用域、原型作用域和函数作用域。 在所有代码块外申明的标识符具有文件作用域,从申明之处开始到文件末尾,该标识符可以被访问。由于文件中定义的函数名并不属于任何代码块,因此它具有文件作用域。同样使用#include自定义头文件时,头文件中的申明语句就好比写在文件中,因此它们也具有文件作用域。 在代码块开始处申明的
2014-03-31 00:15:17
603
转载 变量声明和定义的区别
变量的声明有两种情况:1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。前者是“定义性声明(defining declaration)”或者称为“定义(definition)”,而后者是“引用性声明(referncing declaration)”,从广义
2014-03-30 23:29:38
486
原创 变量存储类型
变量的存存储类型是指存储变量值的内存类型,其决定变量何时创建、何时销毁。变量的存储空间分为:普通内存、运行时堆栈和硬件寄存器。 申明在所有代码块外的缺省存储类型变量的存储类型是静态的(static),此类变量称作静态变量。静态变量总是存储在静态内存中,也就是不属于堆栈的内存中。静态变量的存储类型是不可以被更改的。静态变量在程序运行前被创建,在整个程序运行期间始终存在。 申明在代码块内的
2014-03-30 23:21:34
1016
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人