上一页 1 ··· 51 52 53 54 55 56 57 58 59 ··· 69 下一页
摘要: last modified: 2010-05-28输入与输出头文件定义了用于输入和输出的函数、类型和宏。最重要的类型是用于声明文件指针的FILE。另外两个常用的类型是size_t和fpos_t,size_t是由运算符sizeof产生的无符号整类型;fpos_t类型定义能够唯一说明文件中的每个位置的对象。由头部定义的最有用的宏是EOF,其值代表文件的结尾。1.1 文件操作1.1.1 fopen#include FILE *fopen(const char *filename, const char *mode);返回:成功为FILE指针,失败为NULL打开以filename所指内容为名字的文件, 阅读全文
posted @ 2014-04-05 21:16 二郎那个三郎 阅读(5689) 评论(0) 推荐(1)
摘要: 诊断assert#include void assert(int exp);assert宏用于为程序增加诊断功能。当assert(exp)执行时,如果exp为0,则在标准出错输出流stderr输出一条如下所示的信息:Assertion failed: expression, file filename, line nnn然后调用abort终止执行。其中的源文件名filename和行号nnn来自于预处理宏__FILE__和__LINE__。如果被包含时定义了宏NDEBUG,那么宏assert被忽略。 阅读全文
posted @ 2014-04-05 21:09 二郎那个三郎 阅读(4120) 评论(0) 推荐(1)
摘要: 实用函数在头文件中说明了用于数值转换、内存分配以及具有其他相似任务的函数。1 atof#include double atof(const char *str);把字符串str转换成double类型。等价于:strtod(str, (char**)NULL)。2 atoi#include int atoi(const char *str);把字符串str转换成int类型。等价于:(int)strtol(str, (char**)NULL, 10)。3 atol#include long atol(const char *str);把字符串str转换成long类型。等价于:strtol(str, 阅读全文
posted @ 2014-04-05 21:08 二郎那个三郎 阅读(5785) 评论(0) 推荐(0)
摘要: 字符串函数在头文件中定义了两组字符串函数。第一组函数的名字以str开头;第二组函数的名字以mem开头。只有函数memmove对重叠对象间的拷贝进行了定义,而其他函数都未定义。比较类函数将其变量视为unsigned char类型的数组。1 strcpy#include char *strcpy(char *str1, const char *str2);把字符串str2(包括'\0')拷贝到字符串str1当中,并返回str1。2 strncpy#include char *strncpy(char *str1, const char *str2, size_t count);把字 阅读全文
posted @ 2014-04-05 21:03 二郎那个三郎 阅读(23190) 评论(0) 推荐(1)
摘要: 字符类测试头文件中说明了一些用于测试字符的函数。每个函数的变量均为int类型,变量的值必须是EOF或可用unsigned char类型表示的字符,函数的返回值为int类型。如果变量满足所指定的条件,那么函数返回非0值(表示真);否则返回值为0(表示假)。这些函数包括2.1~2.11。在7位ASCII字符集中,可打印字符是从0x20(' ')到0x7E('~')之间的字符;控制字符是从0(NUL)到0x1F(US)之间的字符和字符0x7F(DEL)。1 isalnum#include int sialnum(int ch);变量为字母或数字时,函数返回非0值,否则 阅读全文
posted @ 2014-04-05 20:57 二郎那个三郎 阅读(5645) 评论(0) 推荐(0)
摘要: 1.定义 extern,外面的、外来的意思。那它有什么作用呢?举个例子:假设你在大街上看到一个黑皮肤绿眼睛红头发的美女(外星人?)或者帅哥。你的第一反应就是这人不是国产的。 extern就相当于他们的这些区别于中国人的特性。extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,下面的代码用到的这些变量或函数是外来的,不是本文件定义的,提示编译器遇到此变量和函数时在其他模块中寻找其定义。就好比在本文件中给这些外来的变量或函数带了顶帽子,告诉本文件中所有代码,这些家伙不是土著。此外extern也可用来进行链接指定。 也就是说extern有两个作用: 第一个,当它与"C 阅读全文
posted @ 2014-04-05 20:04 二郎那个三郎 阅读(1206) 评论(0) 推荐(0)
摘要: 什么是定义?什么是声明?它们有何区别?举个例子:A)int i;B)extern int i;(关于extern,后面解释)哪个是定义?哪个是声明?或者都是定义或者都是声明?我所教过的学生几乎没有一人能回答上这个问题。这个十分重要的概念在大学里从来没有被提起过!什么是定义:所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名或对象名。但注意,这个名字一旦和这块内存匹配起来(可以想象是这个名字嫁给了这块空间,没有要彩礼啊。^_^),它们就同生共死,终生不离不弃。并且这块内存的位置也不能被改变。一个变量或对象在一定的区域内(比如函数内,全 阅读全文
posted @ 2014-04-05 19:27 二郎那个三郎 阅读(4232) 评论(0) 推荐(4)
摘要: 1.const 关键字也许该被替换为 readolny const是constant的缩写,是恒定不变的意思,也翻译为常量、常数等。很不幸,正是因为这一点,很多人都认为被const修饰的值是常量。这是不精确的,精确的说应该是只读的变量,其值在编译时不能被使用,因为编译器在编译时不知道其存储的内容。或许当初这个关键字应该被替换为readonly。那么这个关键字有什么用处和意义呢? const推出的初始目的,正是为了取代预编译指令define,消除它的缺点,同时继承它的优点。我们看看它与define宏的区别。(很多人误以为define是关键字,在这里我提醒你再回到本章前面看看32个关键字里是否.. 阅读全文
posted @ 2014-04-05 19:17 二郎那个三郎 阅读(1466) 评论(0) 推荐(0)
摘要: 1. void avoid的字面意思是“空类型”,void *则为“空类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,看看下面的例子:void a;Visual C++6.0上,这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它也没有任何实际意义。void真正发挥的作用在于:(1) 对函数返回的限定;(2) 对函数参数的限定。众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同 阅读全文
posted @ 2014-04-05 18:55 二郎那个三郎 阅读(837) 评论(0) 推荐(0)
摘要: 1.如何使用 malloc 函数不要莫名其妙,其实上面这段小小的对话,就是malloc的使用过程。malloc是一个函数,专门用来从堆上分配内存。使用malloc函数需要几个要求:内存分配给谁?分配多大内存?是否还有足够内存分配?内存的将用来存储什么格式的数据,即内存用来做什么?分配好的内存在哪里?如果这五点都确定,那内存就能分配。下面先看malloc函数的原型:(void *)malloc(int size)看到了没有,这里的返回类型是(void *),这是多巧妙的一个设计啊。malloc函数的返回值是一个void类型的指针,参数为int类型数据,即申请分配的内存大小,单位是byte。内存分 阅读全文
posted @ 2014-04-05 18:35 二郎那个三郎 阅读(16492) 评论(2) 推荐(3)
上一页 1 ··· 51 52 53 54 55 56 57 58 59 ··· 69 下一页