本站永久域名:http://www.cnblogs.com/bcsky/

文章分类 -  C语言

C语言入门必备手册
摘要:这里不是教你什么知识,而是给你澄清一些资料,只给对编程一窍不通的或者刚入门的人看。 如果你尚未学习或者才学习不够一天,一定要看这手册,这份手册已经讲述的知识,我们不会在版面给予回答 此手册我会尽量保持准确,但如有不正确,请指正 我也会不断更新此手册• 什么都不懂Q:什么是C?A: 一门面向过程的计算机语言,发明至今已经差不多有三十年历史,由于它相对其他高级语言高效,运行效率又比较接近低级语言,所以至今仍得到广泛的引用,无论你用windows还是linux,你现在看到东西的底层都是用C写的,而大部分的网络协议都是用C实现的,画面最漂亮的游戏用C实现的,工业控制程序也是用C实现的。C不是万能,也不 阅读全文

posted @ 2011-05-22 02:11 柒尅 阅读(472) 评论(0) 推荐(0)

C语言出错中英文对照表
摘要:Ambiguous operators need parentheses 不明确的运算需要用括号括起 Ambiguous symbol ''xxx'' 不明确的符号 Argument list syntax error 参数表语法错误 Array bounds missing 丢失数组界限符 Array size toolarge 数组尺寸太大 Bad character in paramenters 参数中有不适当的字符 Bad file name format in include directive 包含命令中文件名格式不正确 Bad ifdef dire 阅读全文

posted @ 2011-05-22 02:11 柒尅 阅读(138) 评论(0) 推荐(0)

【C语言】C语言入门教程 (二十三) 文件操作
摘要:一、标准文件的读写1.文件的打开fopen()文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文 件的存取操作了。当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出 错),并将文件指针指向文件开头。若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头。fopen(char *filename,char *type);其中*filename是要打开文件的文件名指针,一般用双引号括起来的文件名 阅读全文

posted @ 2011-05-22 02:09 柒尅 阅读(237) 评论(0) 推荐(0)

【C语言】C语言入门教程 (二十二) 文件操作基本常识
摘要:由于程序中经常有大量对文件的输入输出操作,它经常构成了程序的主要部分,因而C语言提供了很多输入输出的函数,它们分别用于两种类型文件输入输出系统: 即由ANSI标准定义的缓冲文件(也称标准文件(流)输入输出(I/O)系统);另一类是ANSI标准中没有定义的非缓冲文件(也称非标准文件(流)输入 输出(I/O)系统)。我们已经熟悉了通过键盘和显示器进行输入输出的一些函数,如scanf(),printf()等等,这些通过控制台(键 盘、显示器等)进行I/O的操作,可以看作标准文件输入输出系统的一些特例,实际上在标准输入输出系统中的一些函数,有关文件的参数(文件结构指针或称流 指针),只要用标准设备的流 阅读全文

posted @ 2011-05-22 02:08 柒尅 阅读(452) 评论(0) 推荐(0)

【C语言】C语言入门教程 (二十一) 位操作
摘要:在第一节概述里就说了,C语言是一种中级语言,能对计算机硬件直接操作,这就涉及到位的概念。一、位的概念我们知道,在计算机中,一字节占8位(现在的某些电脑也有占16位的),这样表示的数的范围为0-255,也即00000000-11111111。位就是里面的0和1。char c=100;实际上c应该是01100100,正好是64H。其中高位在前,低位在后。| |第7位 第0位二、位逻辑运算符符号 描述& 位逻辑与| 位逻辑或^ 位逻辑异或~ 取补表中除去最后一个运算符是单目运算符,其他都是双目运算符。这些运算符只能用于整型表达式。位逻辑运算符通常用于对整型变量进行位的设置、清零、取反、以 及 阅读全文

posted @ 2011-05-22 02:04 柒尅 阅读(329) 评论(0) 推荐(0)

【C语言】C语言入门教程 (20) 堆和链表
摘要:我们经常在题目中有要求,输入一个整数,然后以这个整数作为数组的元素个数,下面的程序代码是错误的。int n,array[n];scanf(%d,&n);在Turbo C中,不允许出现动态数组。那么如果必须需要这样时,就只能使用链表了。一、堆堆是一种动态存储结构,实际上就是数据段中的自由存储区,它是C语言中使用的一种名称,常常用于动态数据的存储分配。堆中存入一数据,总是以2字节的整数 倍进行分配,地址向增加方向变动。堆可以不断进行分配直到没有堆空间为止,也可以随时进行释放、再分配,不存在次序问题。所谓动态数组是指在程序运行期间确定其大小的,如常用到的动态数组,它们是在程序执行过程中动态进 阅读全文

posted @ 2011-05-22 01:55 柒尅 阅读(200) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十九) 联合和枚举
摘要:联合(union):一、联合说明和联合变量定义联合也是一种新的数据类型, 它是一种特殊形式的变量。联合说明和联合变量定义与结构十分相似。其形式为:union 联合名{数据类型 成员名;数据类型 成员名;...}联合变量名;联合表示几个变量公用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。下例表示说明一个联合a_bc:union a_bc{int i;char mm;};再用已说明的联合可定义联合变量。例如用上面说明的联合定义一个名为lgc的联合变量,可写成:union a_bc lgc;在联合变量lgc中, 整型量i和字符mm公用同一内存位置。当一个联合被说明时, 编译程序自动 阅读全文

posted @ 2011-05-22 01:53 柒尅 阅读(173) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十八) 结构体
摘要:结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。结构中可以使用不同的数据类型。一、结构说明和结构变量定义在Turbo C中,结构也是一种数据类型,可以使用结构变量,因此,象其它类型的变量一样, 在使用结构变量时要先对其定义。定义结构变量的一般格式为:struct 结构名{类型 变量名;类型 变量名;...} 结构变量;结构名是结构的标识符不是变量名。类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和无值型)。构成结构的每一个类型变量称为结构成员,它象数组的元素一样,但数组中元素是以下标来访问的,而结构是按变量名字来访问成员的。下面举一个例子来说明怎样定义结构变 阅读全文

posted @ 2011-05-22 01:51 柒尅 阅读(154) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十七) 指针函数和函数指针
摘要:一、指针函数当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。格式:类型说明符 * 函数名(参数)当然了,由于返回的是一个地址,所以类型说明符一般都是int。例如:int *GetDate();int * aaa(int,int);函数返回的是一个地址值,经常使用在返回数组的某一元素地址上。int * GetDate(int wk,int dy);main(){int wk,dy;do{printf(Enter week(1-5)day(1-7)\n);scanf(%d%d,&wk,&dy);}while(wk<1||w 阅读全文

posted @ 2011-05-22 01:50 柒尅 阅读(165) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十六) 数组和指针
摘要:指针和数组有着密切的关系,任何能由数组下标完成的操作也都可用指针来实现,但程序中使用指针可使代码更紧凑、更灵活。一、指向数组元素的指针我们定义一个整型数组和一个指向整型的指针变量:int a[10], *p;和前面介绍过的方法相同,可以使整型指针p指向数组中任何一个元素,假定给出赋值运算p=&a[0];此时,p指向数组中的第0号元素,即a[0],指针变量p中包含了数组元素a[0]的地址,由于数组元素在内存中是连续存放的,因此,我们就可以通过指针变量p及其有关运算间接访问数组中的任何一个元素。Turbo C中,数组名是数组的第0号元素的地址,因此下面两个语句是等价的p=&a[0] 阅读全文

posted @ 2011-05-22 01:49 柒尅 阅读(284) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十五) 指针概念
摘要:学习TurboC语言,如果你不能用指针编写有效、正确和灵活的程序,可以认为你没有学好C语言。指针、地址、数组及其相互关系是C语言中最有特色的部分。规范地使用指 针,可以使程序达到简单明了,因此,我们不但要学会如何正确地使用指针,而且要学会在各种情况下正确地使用指针变量。一、指针基本概念及其指针变量的定义我们知道变量在计算机内是占有一块存贮区域的,变量的值就存放在这块区域之中, 在计算机内部, 通过访问或修改这块区域的内容来访问或修改相应的变量。Turbo C语言中, 对于变量的访问形式之一,就是先求出变量的地址,然后再通过地址对它进行访问,这就是这里所要论述的指针及其指针变量。所谓变量的指针, 阅读全文

posted @ 2011-05-22 01:48 柒尅 阅读(195) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十四) 预处理过程
摘要:预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内 在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前 绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转 换。预处理过程还会删除程序中的注释和多余的空白字符。预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许 阅读全文

posted @ 2011-05-22 01:47 柒尅 阅读(264) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十三) 函数递归
摘要:一、栈在说函数递归的时候,顺便说一下栈的概念。栈是一个后进先出的压入(push)和弹出(pop)式数据结构。在程序运行时,系统每次向栈中压入一个对象,然后栈指针向下移动一个位置。当系统从栈中 弹出一个对象时,最近进栈的对象将被弹出。然后栈指针向上移动一个位置。程序员经常利用栈这种数据结构来处理那些最适合用后进先出逻辑来描述的编程问题。 这里讨论的程序中的栈在每个程序中都是存在的,它不需要程序员编写代码去维护,而是由运行是系统自动处理。所谓的系统自动维护,实际上就是编译器所产生的 程序代码。尽管在源代码中看不到它们,但程序员应该对此有所了解。再来看看程序中的栈是如何工作的。当一个函数(调用者)调 阅读全文

posted @ 2011-05-22 01:46 柒尅 阅读(297) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十二) 变量的作用域和存储类型
摘要:一、作用域和生存期C程序的标识符作用域有三种:局部、全局、文件。标识符的作用域决定了程序中的哪些语句可以使用它,换句话说,就是标识符在程序其他部分的可见性。通常,标识符的作用域都是通过它在程序中的位置隐式说明的。1.局部作用域前面各个例子中的变量都是局部作用域,他们都是声明在函数内部,无法被其他函数的代码所访问。函数的形式参数的作用域也是局部的,它们的作用范围仅限于函数内部所用的语句块。void add(int);main(){int num=5;add(num);printf(%d\n,num); /*输出5*/}void add(int num){num++;printf(%d\n,num 阅读全文

posted @ 2011-05-22 01:45 柒尅 阅读(316) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十一) 函数参数的传递和值返回
摘要:前面我们说的都是无参数无返回值的函数,实际程序中,我们经常使用到带参数有返回值的函数。一、函数参数传递1.形式参数和实际参数函数的调用值把一些表达式作为参数传递给函数。函数定义中的参数是形式参数,函数的调用者提供给函数的参数叫实际参数。在函数调用之前,实际参数的值将被拷贝到这些形式参数中。2.参数传递先看一个例子:void a(int); /*注意函数声明的形式*/main(){int num;scanf(%d,&num);a(num); /*注意调用形式*/}void a(int num_back) /*注意定义形式*/{printf(%d\n,num_back);}在主函数中,先定 阅读全文

posted @ 2011-05-22 01:44 柒尅 阅读(329) 评论(0) 推荐(0)

【C语言】C语言入门教程 (十) 函数的定义和调用
摘要:本节介绍C程序的基本单元--函数。函数中包含了程序的可执行代码。每个C程序的入口和出口都位于函数main()之中。main()函数可以调用其他函 数,这些函数执行完毕后程序的控制又返回到main()函数中,main()函数不能被别的函数所调用。通常我们把这些被调用的函数称为下层 (lower-level)函数。函数调用发生时,立即执行被调用的函数,而调用者则进入等待状态,直到被调用函数执行完毕。函数可以有参数和返回值。程序员一般把函数当作“黑箱”处理,并不关心它内部的实现细节。当然程序员也可以自己开发函数库。说 明一点,函数这一节很重要,可以说一个程序的优劣集中体现在函数上。如果函数使用的恰当 阅读全文

posted @ 2011-05-22 01:43 柒尅 阅读(822) 评论(0) 推荐(0)

【C语言】C语言入门教程 (九) 多维数组
摘要:一、高维数组有时,数组的维数并不止一维,例如一个记录消费中心在第一季度里各个月的收入数据就可以用二维数组来表示。定义二维数组的方法是在一维数组定义的后面再加上一个用方括号括起来的维数说明。例如:float array[3][8];实际上,这个数组可以看成3个连续的一维数组,每个一维数组具有8个元素。该数组在内存中的存储格式为最左边的维数相同的元素连续存储,也即按行存储的。首先存储第一行8个元素,其次是第二行,最后是第三行。main(){int array[3][3]={1,2,3,4,5,6,7,8,9};int i,j;for(i=0;i<3;i++){for(j=0;j<3;j 阅读全文

posted @ 2011-05-22 01:42 柒尅 阅读(376) 评论(0) 推荐(0)

【C语言】C语言入门教程 (八) 数组
摘要:数组,顾名思义就是一组同类型的数。一、数组的声明声明数组的语法为在数组名后加上用方括号括起来的维数说明。本接仅介绍一维数组。下面是一个整型数组的例子:int array[10];这条语句定义了一个具有10个整型元素的名为array的数组。这些整数在内存中是连续存储的。数组的大小等于每个元素的大小乘上数组元素的个数。方括号中的维数表达式可以包含运算符,但其计算结果必须是一个长整型值。这个数组是一维的。下面这些声明是合法的:int offset[5+3];float count[5*2+3];下面是不合法的:int n=10;int offset[n]; /*在声明时,变量不能作为数组的维数*/二 阅读全文

posted @ 2011-05-22 01:41 柒尅 阅读(576) 评论(0) 推荐(0)

【C语言】C语言入门教程 (七) 循环语句和循环控制
摘要:Turbo C 2.0提供三种基本的循环语句: for语句、while语句和do-while语句。一、循环语句(一)、for循环 它的一般形式为:for(<初始化>;<条件表过式>;<增量>)语句;初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用;分开。例如:for(i=1;i<=10;i++)语句;上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>10时,结束循环。注意 阅读全文

posted @ 2011-05-22 01:40 柒尅 阅读(621) 评论(0) 推荐(0)

【C语言】C语言入门教程 (六) 条件语句
摘要:一个表达式的返回值都可以用来判断真假,除非没有任何返回值的void型和返回无法判断真假的结构。当表达式的值不等于0时,它就是“真”,否则就是假。 一样个表达式可以包含其他表达式和运算符,并且基于整个表达式的运算结果可以得到一个真/假的条件值。因此,当一个表达式在程序中被用于检验其真/假的值 时,就称为一个条件。一、if语句if(表达式) 语句1;如果表达式的值为非0,则执行语句1,否则跳过语句继续执行下面的语句。如果语句1有多于一条语句要执行时, 必须使用{和} 把这些语句包括在其中, 此时条件语句形式为:if(表达式){语句体1;}例如:if(x>=0) y=x;if(a||b& 阅读全文

posted @ 2011-05-22 01:39 柒尅 阅读(459) 评论(0) 推荐(0)