C语言学习笔记_第1页
C语言学习笔记_第2页
C语言学习笔记_第3页
C语言学习笔记_第4页
C语言学习笔记_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言学习笔记第一章 初识C语言1.1C语言简介:1. C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作,因此,C语言既具有高级语言的功能,又兼容低级语言的许多功能,可以用来编写系统软件。2. 使用标准库函数时,要先包含头文件:stdio.h; 使用数学函数时,要先包含头文件:math.h; 使用字符串函数时,要先包含头文件:string.h; 使用字符函数时,要先包含头文件:ctype.h; 使用产用子程序时,要包含头文件:stdlib.h; 使用调用DOS控制台I/0时,要先包含头文件:conio.h;1.2认识C语言: 1. C程序是由函数构成

2、的。一个C程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数,但须记住!一个C程序中有且只有一个main函数。2. 函数是C程序的基本单位,被调用的函数可以是系统提供的库函数,也可以是用户自己定义的函数。3. 在使用C语言时,习惯上是用英文小写字母书写,当然也可以用大写字母,但是大写字母在C语言中通常作为常量或其他特殊用途来使用。应该注意!C语言中对大小写是有区分的。4. C语言使用”;”号作为语句的结束标志。5. 一个C程序总是从main函数开始执行的,而不管main函数在整个程序中的位置如何。6. 编程时要注意左右大括号要对应使用。7. 变量名、函数名和C语言保留字中

3、间不能加入空格,除此之外的空格和空行可以任意设置,C语言编译系统是不会理会这些空格和空格行符的。8.Visual C+ 6.0集成开发环境的一些快捷键: Ctrl+N: 创建一个新文件 Ctrl+: 检测程序中的括号是否匹配 F7: Build操作 Ctrl+F5: Execute执行操作 Alt+F8: 整理一段不整洁的源代码 F5: 运行调试9. C语言的注释为”/*/”,注释通常用于以下几种情况: 版本、版权声明 函数接口说明 重要的代码行或者段落显示10. 程序中的“”、“”要对齐。11. 空格在程序中的使用: (1)、关键字后要留一个空格。如:const、case等关键字之后要保留一

4、个空格,否则编译器无法辨析它是否是一个关键字。If、for、while等关键字之后也应该留一个空格,然后再跟一个小括号“(”。 (2)、函数名之后不要留空格,要紧跟“(”,以示与关键字的区别。 (3)、“(”后向紧跟,“)” “,” “;”前向紧跟,紧跟处不留空格。 (4)、“,”之后要留空格,如果“;”不是一行的结束,则最后要留空格。 (5)、赋值操作符、比较操作符、算数操作符、逻辑操作符、位操作符,如+、=、等操作符,同样前后不加空格。12 要学会适当的换行,换行使代码更清晰。代码行的最大长度应该控制在7080个字符之内。13. 所有的标识符必须由字母或下划线开头,标示符的其他部分可以是字

5、母、下划线或数字组成。大小写字母表示不同的意义,即代表不同的标示符。 14. 标示符不能是关键字。即标示符不能和C语言的关键字相同,也不能和用户已编写的函数或C语言库函数同名。 15. 源程序错误分为3种类型:严重警告、一般错误和警告。第二章 C语言基础2.1 数据类型 1. 数据类型是程序设计语言的基本组成部分,用以说明数据的存储格式、存储空间的占用情况、可表达的数据范围及可施加的运算,在程序中所用到的数据都必须指定它的数据类型。 2. C语言中数据类型包括几个大方向:基本类型、构造类型、指针类型和空类型。如下:数据类型构造类型空类型基本类型指针类型双精度型单精度型长整型基本整型短整型实型(

6、浮点型)枚举类型字符型整型共用体类型结构体类型数组类型 3. 一般一个函数都会有一个返回值,这个返回值应该是具有特定的类型的,我将这个函数定义成什么类型,那么它的返回值就是一个什么样的类型,当然,我也可以进行强制类型转换,将它的返回值的类型变换成其他的类型。2.2 常量1. C语言将数据分为常量和变量,常量就是其值在程序运行过程中不可以改变的量。常量分为以下三大类: 常量字符型常量符号常量实型常量整型常量数值型常量2.2.1 整型常量1. 八进制整数必须以0开头。2. 十六进制整数的前缀为0X或0x。3. 十进制整数没有前缀4. 整型数据在内存中是以二进制的形式存放,数值是以补码表示的。2.2

7、.2 实型常量1. 实型常量也称为浮点型常量,是一个十进制表示的有符号的实数,由整数和小数这两块组成,其中用十进制的小数点进行隔开。2.2.3 字符型常量1 字符型常量可分为两种:一种是字符常量,另一种是字符串常量。2 字符常量中只能够包括一个字符,不是字符串。3 字符常量是区分大小写的。4 所使用的 单撇号代表定界符,这不属于字符常量中的一部分。5 特殊字符常量就是转义字符。它是以反斜杠“”为开头的字符,后面跟一个或几个字符。转义字符中只能使用小写字母,每个转义字符只能看作是一个字符。如果反斜杠之后的字符和它不构成转义字符,则“”不起转义作用,将被忽略。6 使用双撇号括起来的若干字符序列称作

8、字符串常量。空串的长度为0。7 C语言中存储字符串常量时,系统会在字符串的末尾自动加一个“0”作为字符串的结束标志。8 字符常量A与字符串常量“A”是两个不同的概念,主要体现在以下几个方面: (1)、 定界符不同:字符常量使用单撇号,而字符串常量使用的是双撇号。 (2)、长度不同:字符常量的长度固定为1,而字符串常量的长度可以是0,也可以是某个整数,这里的字符串常量“A”的长度是2而不是1。2.2.4 符号常量1. 在C语言中,将程序的常量定义为一个标示符,这个常量就叫做符号常量。2. 通常符号常量使用大写字母表示,符号常量的好处在于可以为编程和阅读带来方便。2.3 变量2.3.1 整型变量1

9、 整型分为有符号和无符号两种,其中短整型(short int)占2个字节,基本整型(int)和长整型(long int)占4个字节。2 如果遇到数据溢出的情况时,编译器并不会报错,但是你得不到你想要的结果,所以说,在编程时,我们要对数据可存储的容量要有足够的了解。2.3.2 实型变量1. 实型变量也称为浮点型变量。实型变量根据实型的精度也可以分为3种,分别是:单精度类型(float 占4个字节)、双精度类型(double 占8个字节)、长双精度类型(long double占8个字节)2. 使用sizeof 运算符能够很容易知道任一种数据类型的长度。如sizeof(int)的值就是一个整型的长度

10、。3. 不同的编译器为变量分配的内存空间不同。2.3.3 字符型变量1. 字符型变量(char)是用来存储字符常量的变量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。2. 它存储的形式与整数的存储形式是一样的,所以C语言中允许字符型数据与整型数据之间同用。2.4 运算符与表达式2.4.1 赋值运算符与表达式 1. 在程序中经常遇到的赋值符号“=”就是赋值运算符,其功能是为变量赋值。由赋值运算符所组成的表达式为赋值表达式。 2. 并不是所有的表达式都可以作为左值,如常数,只可以作为右值。 3. 当赋值运算符“=”两侧的类型不一致时,但都是数

11、值型或都是字符型时。在赋值过程中需要进行类型转换。类型转换有两种:一个是自动类型转换,另一个是强制类型转换。 4. 自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成,转换按数据长度增加的方向进行,以保证精度不降低。 5. 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按照四舍五入向前舍入。 6. 当高级别的精度向低级别的精度方向进行强制类型转换时,可能会出现数据丢失。这个时候可能会编译成功,但是得不到我们想要的精确的结果。 7. 无论是强制类型转换还是自动类型转换,

12、都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,并不改变数据的原始类型。 8. 在赋值符“=”之前加上其他的运算符,可以构成复合的运算符。如“+=”,“*=”等。2.4.2 算术运算符与表达式1. 算术运算符包括两个单目运算符正和负,5个双目运算符: + - * / % .2. 求余运算符(模运算符)“%”, 为双目运算符,要求参与运算的量均为整型,求余运算的结果等于两数相除后的余数。3. 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子称为算术表达式。运算对象包括常量、变量及函数等。2.4.3 关系运算符与表达式1. “关系运算”实际上是“比较运算”,关

13、系运算符也就是比较两个操作数大小的符号。C语言中提供了六种关系运算符,它们是: = 字符串2,返回值为一正数;字符串1成员名; 这其中,我们得注意了,如:pStruct-iGrade+表示指向的结构体变量中成员iGrade的值,使用该值后再加1。而+pStruct-iGrade则是表示指向的结构体变量中成员iGrade的值加1,计算后在进行使用。2. 结构体指针变量不但可以指向一个结构体变量,还可以指向结构体数组,那么此时指针变量的值就是结构体数组的首地址。结构体指针变量也可以直接指向结构体数组的元素,这是指针变量的值就是该结构体数组元素的首地址。3. 可以将结构体变量的值作为一个函数的参数。

14、使用结构体作为函数的参数有3中形式:(1)、 使用结构体变量作为函数的参数:在使用结构体变量作为函数的实参时,采取的是“值传递”,会将结构体变量所占的内存单元的内容全部顺序传递给形参,形参也必须是同类型的结构体变量。(这样太浪费时间和空间了)(2)、 使用结构体变量的指针作为函数的参数:在传递结构体变量的指针时,只是将结构体变量的首地址进行传递,并没有将变量的副本进行传递。(3)、 使用结构体变量的成员作为函数的参数:使用这种方式为函数传递参数与普通的变量作为实参相同,都是以传值方式传递的,传值时,实参要与形参的类型一致。 8.4 包含结构的结构 1. 结构体中的成员不仅仅可以是基本类型,还可

15、以是结构体类型。 2. 在引用结构体的结构体成员时,必须使用成员运算符一级一级的找到最低级的成员进行引用。8.5 链表 1. 链表是一种常用的数据结构。 2. 链表这种存储方式其元素的个数是不受限定的,当进行添加元素时,存储的个数就会随之改变。 3. 在链表这种数据结构中,必须利用指针才能实现,所以链表中的结点应该包含一个指针变量,来保存一个结点的地址。 8.6 共用体1. 共用体是C语言中另外一种高级数据结构。在编写程序的过程中,合理使用共用体可以节省内存空间,还可以简化多种复杂数据的处理。2. 共用体看起来像结构体,不过关键字由struct变成了union 。共用体数结构体的区别在于:结构

16、体定义了一个由多个数据成员组成的特殊类型,而共用体定义了一块为所有数据成员共享的内存。3. 共用体也称为联合,共用体可以使几种不同类型的变量存放到同一段内存单元中,所以共用体在同一时刻只能由一个值,它属于某一个数据成员。由于所有成员共用同一块内存,因此共用体的大小等于最大成员的大小。4. 定义共用体的类型变量的一般形式为: union 共用体名 成员列表; 变量列表;5. 共用体与结构体定义变量的方式相似,不过要注意的是结构体变量大小是所包括所有数据成员大小的总和,其中每个成员分别占有自己的内存单元,但是共用体的大小为所包含数据成员中最大内存的大小。6. 不能引用共用体变量,只能引用共用体变量

17、中的成员。7. 对共用体变量初始化时,只需要一个初始化就足够了,其类型必须和共用体的第一个成员的类型一致。8. 同一个内存段可以用来存放几种不同类型的成员,但是每一次只能存放其中一种类型,而不是同时存放所有的类型。也就是说,在共用体中,只有一个成员起作用,其他成员不起作用。9. 共用体变量所占的内存空间等于其中最大成员变量所占的内存空间。10. 共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后,原有的成员就失去作用。11. 共用体变量的地址和其个成员的地址都是同一地址。12. 不能对共用体变量名赋值,也不能企图引用变量名来得到一个值。13. 不能用共用体变量作为函数的参数或是返回值,当需要在函数间传递共用体时,可以使用指向共用体变量的指针来实现。8.7 枚举类型1. 枚举类型实指将变量的值一一例举出来,并且变量的值只限于这些列举出来的范围。2. 枚举类型的定义形式如下:enum 枚举名标识符=整型常数,标识符=整型常数,标识符=整型常数, 枚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论