
c
文章平均质量分 68
路漫漫
这个作者很懒,什么都没留下…
展开
-
C语言中数组与指针的透彻分析
一. 一维数组与指针的关系分析1.指针与一维数组的定义指针定义: 指针是包含内存地址的变量,一般的指针变量直接包含特定的值,指针变量包含的是某一特定数据类型的内存地址。一维数组的定义: 数组是一组连续的内存位置,它们都具有相同的名称和类型。数组名表示数组的首地址。定义上的区别: 指针是个变量,可以进行加或减运算,可以改变其指向的内存地址值,而数组是个常量,其内存地址的值不可改变。转载 2012-05-28 13:35:04 · 668 阅读 · 0 评论 -
C语言文件操作解析(一)
在讨论C语言文件操作之前,先了解一下与文件相关的东西。一.文本文件和二进制文件 文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中。文本文件只能存储文件中的有效字符信息,不能存储图像、声音等信息。狭义上的二进制文件则指除开文本文件之外的文件,如图片、DOC文档。 事实上,无论是上面所定义的文本文件还是二进制文件,在计算机中存储都是以二进制的形式存储的,因此其本转载 2012-05-24 12:54:39 · 369 阅读 · 0 评论 -
详解C中volatile关键字
本文转自:chao_yu原文链接:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读转载 2012-05-24 10:25:50 · 396 阅读 · 0 评论 -
浅谈C/C++中的指针和数组(一)
指针是C/C++的精华,而指针和数组又是一对欢喜冤家,很多时候我们并不能很好的区分指针和数组,对于刚毕业的计算机系的本科生很少有人能够熟练掌握指针以及数组的用法和区别。造成这种原因可能跟现在大学教学以及现在市面上流行的很多C或者C++教程有关,这些教程虽然通俗易懂,但是在很多关键性的地方却避而不谈或者根本阐述不清楚,甚至很多时候阐述的是错误的观点。一般最初学习C/C++的时候接触到的都是这类教程,转载 2012-05-24 12:31:53 · 462 阅读 · 0 评论 -
C语言文件操作解析(四)
在文件操作中除了打开操作以及读写操作,还有几种比较常见的操作。下面介绍一下这些操作中涉及到的函数。一.移动位置指针的函数 rewind函数和fseek函数,这两个函数的原型是: void rewind(FILE *fp); 将位置指针移动到文件首 int fseek(FILE *fp,long int offset,int origin); 将位置指针移动到距转载 2012-05-24 14:15:45 · 312 阅读 · 0 评论 -
C语言文件操作解析(五)
在C语言中,有个符号大家都应该很熟悉,那就是EOF(End of File),即文件结束符。但是很多时候对这个理解并不是很清楚,导致在写代码的时候经常出错,特别是在判断文件是否到达文件末尾时,常常出错。1.EOF是什么? 在VC中查看EOF的定义可知: #define EOF (-1) EOF只是代表一个整形常量-1。因此很多人认为在文件的末尾存在这个结束标志E转载 2012-05-24 14:30:02 · 336 阅读 · 0 评论 -
c语言实现字符串拼接的技巧
C语言中字符串的工作方式: 如果不遍历字符串并查找末尾的空字符,就没有办法知道字符串在何处结束(即字符串长度)。 字符串中不能包含任何零。因此,C字符串中不能存放诸如JPEG图片之类的任何二进制数据块。 对于重要程序、API、操作系统与类库,用户应该像躲避瘟疫一样地避开使用ASCIZ字符串。为什么呢?先从编写函数strcat的一个代码版本入手进行讨论。该函数的功能是将一个字符串附加在另一个字符串转载 2012-05-25 16:19:25 · 9669 阅读 · 0 评论 -
C语言头文件、库文件的查找路径
C语言头文件的查找路径C语言,使用include指令,包含头文件,但又细分两种形式:1、形式一:#include “file1” gcc先在当前目录(指包含本条#include指令的源文件所在的目录)寻找file1,如果找不到,继续在由-iquote选项(如果有的话)指定的目录中寻找file1。 例如,在文件/usr/include/sys/stat.h中,包含指令#i转载 2012-05-25 22:28:20 · 922 阅读 · 0 评论 -
c语言多文件执行或引用多源程序
关于c语言多文件同时执行今天找了N多资料没找到,最后被我试出来了,现在跟大家分享一下。 下面写个小例子直接点: b.c源文件 #include output(){ printf("外文件函数");} a.c源文件 #include "b.c" (注意这里必须用双引号用尖括号是不行的,我刚开始就是习惯用尖括号了,写上一直不行,原创 2012-05-25 17:27:23 · 946 阅读 · 0 评论 -
浅谈C/C++中的指针和数组(二)
前面已经讨论了指针和数组的一些区别,然而在某些情况下,指针和数组是等同的,下面讨论一下什么时候指针和数组是相同的。C语言标准对此作了说明:规则1:表达式中的数组名被编译器当做一个指向该数组第一个元素的指针; 注:下面几种情况例外 1)数组名作为sizeof的操作数 2)使用&取数组的地址规则2:下标总是与指针的偏移量相同转载 2012-05-24 12:42:08 · 408 阅读 · 0 评论 -
求二进制中1的个数
在《编程之美》一书中有一节提到如何求一个字节的无符号整型变量二进制表示中中1的个数,主要提到了四种方法。下面简单介绍一下:1.求余法 在将十进制数转换为二进制数时,采用除2取余法。将每次除2得到的余数保存起来逆序输出便是该十进制整数的二进制表示。因此可以采用这种方法去统计1的个数。int count(unsigned char n){ int sum=0;转载 2012-05-24 10:44:53 · 354 阅读 · 0 评论 -
C语言文件操作解析(三)
在前面已经讨论了文件打开操作,下面说一下文件的读写操作。文件的读写操作主要有4种,字符读写、字符串读写、块读写以及格式化读写。一.字符读写 字符读写主要使用两个函数fputc和fgetc,两个函数的原型是: int fputc(int ch,FILE *fp);若写入成功则返回写入的字符,否则返回-1 int fgetc(FILE *fp); 若读取成功则返回读转载 2012-05-24 13:35:06 · 322 阅读 · 0 评论 -
c语言写入文件 不能马上更新
今天用c语言 写入一个文件发现 调用写入函数后 打开文件文件里面是空的。只有程序结束后或关闭指针后文件中的内容才能更新。 网上找了半天终于把问题解决了: 原来是C语言对文件的操作使用了文件缓冲系统。 C语言对文件的操作使用了缓冲文件系统,具体的说就是系统自动为每个正在使用的文件在内存中开辟原创 2012-05-29 16:42:58 · 4777 阅读 · 2 评论 -
C/C++ 误区:char c = getchar();
许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返回值类型都是 int 型,当这些函数读取出错或者读完文件后,会返回 EOF.EOF 是一个宏,标准规定它的值必须是一个 int 型的负数常量。通常编译器都会把 EOF 定义为 -1.问题就出在这里,使用 char 型变量接收 get转载 2012-05-30 13:29:31 · 460 阅读 · 0 评论 -
OCI 编程
OCI编程的一般过程 与OCI7.3中使用的宿主语言定义变量存储空间(很拗口,不用管它)的方式不同,OCI9以后已不再使用原有的变量结构来初始化及维护数据库的信息,而改用句柄的形式来和Oracle数据库进行交互。将常用的句柄定义在一个结构内,方便程序维护:view sourceprint?1typedef struct_OCI_HA转载 2012-05-30 15:06:22 · 3090 阅读 · 1 评论 -
C/C++ 误区:fflush(stdin)
1. 为什么 fflush(stdin) 是错的?首先请看以下程序:#include int main( void ){int i;for (;;) { fputs("Please input an integer: ", stdout); scanf("%d", &i); printf("%d\n", i);}转载 2012-05-30 13:27:01 · 1803 阅读 · 1 评论 -
C/C++ 误区:void main()
很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) .C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* …… */ } is not and never has been C++, nor has it eve转载 2012-05-30 13:32:11 · 497 阅读 · 0 评论 -
VC中Error spawning cl.exe错误的解决方法.
可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的 “Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的 选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录/VC98/Bin”下面, 你可以到相应的路径下找到这个应用程序。转载 2012-06-01 11:17:47 · 403 阅读 · 0 评论 -
C语言文件操作解析(二)
C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数。fopen函数的原型为 FILE* fopen(const char *path,const char *mode) 其中path为文件路径,mode为打开方式 1)对于文件路径,只需注意若未明确给出绝对路径,则默认该文件在工程的目录下。若需给出绝对路径,则注意转义字符'\',转载 2012-05-24 13:05:30 · 356 阅读 · 0 评论 -
浅谈C/C++中的typedef和#define
在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++的宏定义命令,typedef用来为一个已有的数据类型起一个别名,而#define是用来定义一个宏定义常量。下面谈谈两者在实际使用中应当注意的地方。1.typedef关键字 typedef是用转载 2012-05-24 12:31:27 · 271 阅读 · 0 评论 -
C/C++程序到内存分配
一、一个由C/C++编译到程序占用的内存分为以下几个部分:1、栈区(stack)——由编译器自动分配释放,在不需要的时候自动清除。用于存放函数的参数、局部变量等。操作方式类似数据结构中的栈(后进先出)。2、堆区(heap)——一般由程序员分配释放,若程序员分配后不释放,程序结束后可能由OS回收。不同于数据结构中的堆,分配方式有些类似链表。3、全局区(静态区)——全局变量和静态变量存储在转载 2012-05-25 16:52:44 · 572 阅读 · 0 评论