12 2012 档案
摘要:本文在原帖基础上稍作了一些修饰。原帖地址为http://blog.163.com/hai_zone/blog/static/26461137201203123308/哈希表一、哈希表算法-哈希表的概念及作用根据设定的哈希函数H(key)和处理冲突的方法将一组记录的关键字映象到一个有限的连续的地址集(区间)上,并以关键字(原象)在地址集中的“象”作为记录在地址集中的存储位置,这种存放记录的地址集(数组)便称为哈希表,这一映象过程称为哈希造表或散列,所得存储位置称哈希地址或散列地址也就是说,它通过把关键码值映射到表(数组)中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的
阅读全文
摘要:1.malloc原型:extern void *malloc(unsigned int num_bytes);头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Visual C++6.0中可以用malloc.h或者stdlib.h。功能:分配长度为num_bytes字节的内存块。返回值:返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free
阅读全文
摘要:C语言中time_t数据类型详细介绍 原帖地址:http://www.eefocus.com/xuefu2009/blog/10-03/187348_f456a.html包含文件:#ifndef__TIME_T#define__TIME_T /* 避免重复定义 time_t */typedef long time_t; /* 时间值time_t 为长整型的别名*/#endif既然time_t实际上是长整型,到未来的某一天,从一个时间点(一般是1970年1月1日0时0分0秒)到那时的秒数(即日历时间)超出了长整形所能表示的数的范围怎么办?对time_t数据类型的值来说,它所表示的时间不能晚于20
阅读全文
摘要:本文章用于没有太多C语言知识的读者,想要读懂开源的水力建模软件EPANET时,会遇到如下的一些C标准函数,现介绍如下:一、fgets函数原型: char *fgets(char *s, int n, FILE *stream);参数: *s: 字符型指针,指向将存储到的数据地址。 n: 整型数据,将从流中读取 n - 1 个字符。 *stream: 指针数据,欲读取的流。 功能: 从文件指针stream中读取n-1个字符,存到以s为起始地址的空间里,直到读完一行,如果成功则返回s的指针,否则返回NULL。 例: 如果一个文件的当前位置的文本如下 Love ,I Have 但是...
阅读全文
摘要:char *p="1234567890",这样的定义有问题吗? 2008-08-25 19:47 348人阅读 评论(1) 收藏 举报这个"1234567890"字符串不再堆上也不在栈上!而是在文字常量区,而指针p在栈上。文字常量区:常量字符串就是放在这里的.程序结束后由系统释放。比如: inta=0;全局初始化区 char*p1;全局未初始化区 main() { intb;栈 chars[]="abc";栈 char*p2;栈 char*p3="123456";123456/0在常量区,p3在栈上。 static
阅读全文
摘要:指针函数与函数指针的区别一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y);首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。表示:float *fun();float *p;p = fun(a);注意指针函数与函数指针表示方法的不同,千万不要混淆。
阅读全文
摘要:本文是通过几篇转帖的文章整理而成的,内容稍有修改:一、C语言中,为什么字符串可以赋值给字符指针变量char *p,a='5';p=&a; //显然是正确的,p="abcd"; //但为什么也可以这样赋值??问:一直理解不了为什么可以将字串常量赋值给字符指针变量,请各位指点!答:双引号做了3件事: 1.申请了空间(在常量区),存放了字符串 2. 在字符串尾加上了'/0'3.返回地址你这里就是 返回的地址 赋值给了 p 二、char *p = “hello”;上边的表达式为什么可以,而把p换成数组,然后再赋值就不行了解释:字符串常量&qu
阅读全文
摘要:原文地址:http://zhidao.baidu.com/question/50166479.html关于 typedef struct 和 struct2008-04-04 01:53 提问者: leaguesoft |浏览次数:38121次请高手帮忙解释以下几种结构体定义的区别:struct{ int x; int y;}test1;struct test{int x;int y;}test1;typedef struct test{int x;int y}text1,text2;这几种方法把小弟弄得头疼,不胜感激!问题补充:还有:type struct{int x;int y;}te..
阅读全文
摘要:#include #include void main(){char x[]={'A','B','C','D'};int len=strlen(x);printf("%d\n",len);}为什么加\0就是len就等于字符个数了,不加的话len就不是预料中的值呢。。strlen是以'\0'作为结束符的,上面没有结束符,会一直讲到内存中的下一个'\0'为止,长度不确定。char x[]={'a','b','c','d'
阅读全文
摘要:c 函数指针原文地址:http://hi.baidu.com/bellgrade/blog/item/229f792d39e0a5e68a1399f3.html函数名与函数指针一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x); //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]){MyFun(10);//这里是调用MyFun(10);函数 return 0;}void MyFun(int x) //这里定义一个MyFun函数{ printf(“%d\n”,x);} 这个My
阅读全文
摘要:时常在cpp的代码之中看到这样的代码:#ifdef __cplusplusextern "C" {#endif//一段代码#ifdef __cplusplus}#endif 这样的代码到底是什么意思呢?首先,其中__cplusplus是C++编译器的保留宏定义.就是说C++编译器认为这个宏已经定义了.那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入 extern "C"{ 和 } 处理其中的代码; extern "C" { #endif //一段代码 } #endif //
阅读全文
摘要:1: fprintf: fprintf是用于文件操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件。fprintf()的返回值是输出的字符数,发生错误时返回一个负值. char name[20] = "Mary"; FILE *out; out = fopen( "output.txt", "w"
阅读全文
摘要:EPANET代码解读1EPANET是美国环境保护局(环保署)公布的水力分析引擎,其源代码是开放的,但由于是用C写的,并且代码清晰度并不够,因此有必要解读一下。EPANET当前最新版本是2.0,可以编译为动态链接库(DLL),也可以编译为独立的可执行程序(EXE)。编译DLL的最好方法是在VC++新建一个空的DLL项目,然后把*.c、*.h以及epanet.def文件加入到项目中,即可顺利完成编译。要编译EXE,可以新建一个空的EXE项目,同样加入文件后,定义CLE并进行编译。DLL包含了一组导出函数,详细的用法在用户手册中有介绍,此处不作解释。EXE需要3个文件参数,分别是输入文件、报告文件和
阅读全文
摘要:c头文件(.h)的作用 C语言的著作中,至今还没发现把.h文件的用法写的透彻的。在实际应用中也只能依葫芦画瓢,只知其然不知其所以然,甚是郁闷!闲来无事,便将搜集网络的相关内容整理一下,以便加深自己的理解理论概述:.h中一般放的是同名.c文件中定义的变量、数组、函数的声明,需要让.c外部使用的声明。1)h文件作用: 1.方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明; 2. 使函数的作用域从函数声明的位置开始,而不是函数定义的位置(实践总结) 3 .提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。2)h文件里应该有什么:常量,结构...
阅读全文
摘要:[转帖]int main(int argc,char * argv[]) windows 下的使用通常对于初学C语言的同学来说,我们的main函数,都是没有形参的,那么这是怎么回事呢?根据C语言规定,main函数的参数只能有两个,习惯上这两个参数为argc和argv,格式如下:intmain(intargc,char*argv[]){//program//}解析:此时,main函数有两个形参。第一个argc为int整形。第二个为指针数组。也就是这个形参是个数组,这个数组的成员是指针。其指针指向char型。argc记录了用户在运行程序的命令行中输入的参数的个数。arg[]指向的数组中至少有一个字
阅读全文