C语言学习笔记
- 格式:doc
- 大小:158.50 KB
- 文档页数:28
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程序是由函数构成的。一个C程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数,但须记住!一个C程序中有且只有一个main函数。
2. 函数是C程序的基本单位,被调用的函数可以是系统提供的库函数,也可以是用户自己定义的函数。
3. 在使用C语言时,习惯上是用英文小写字母书写,当然也可以用大写字母,但是大写字母在C语言中通常作为常量或其他特殊用途来使用。应该注意!C语言中对大小写是有区分的。
4. C语言使用”;”号作为语句的结束标志。
5. 一个C程序总是从main函数开始执行的,而不管main函数在整个程序中的位置如何。
6. 编程时要注意左右大括号要对应使用。
7. 变量名、函数名和C语言保留字中间不能加入空格,除此之外的空格和空行可以任意设置,C语言编译系统是不会理会这些空格和空格行符的。
8.Visual C++ 6.0集成开发环境的一些快捷键:
Ctrl+N: 创建一个新文件
Ctrl+]: 检测程序中的括号是否匹配
F7: Build操作
Ctrl+F5: Execute执行操作 Alt+F8: 整理一段不整洁的源代码
F5: 运行调试
9. C语言的注释为”/*``````*/”,注释通常用于以下几种情况:
版本、版权声明
函数接口说明
重要的代码行或者段落显示
10. 程序中的“{”、“}”要对齐。
11. 空格在程序中的使用:
(1)、关键字后要留一个空格。如:const、case等关键字之后要保留一个空格,否则编译器无法辨析它是否是一个关键字。If、for、while等关键字之后也应该留一个空格,然后再跟一个小括号“(”。
(2)、函数名之后不要留空格,要紧跟“(”,以示与关键字的区别。
(3)、“(”后向紧跟,“)” “,” “;”前向紧跟,紧跟处不留空格。
(4)、“,”之后要留空格,如果“;”不是一行的结束,则最后要留空格。
(5)、赋值操作符、比较操作符、算数操作符、逻辑操作符、位操作符,如+、=、<=、*、^等二元操作符的前后都应该适当的加空格。对于比较长的表达式,即使是使用了二元操作符,也应该适当的去掉一些空格,使表达式看起来更加紧凑。
(6)、一元操作符如 ! ~ ++ ——等前后都不加空格,如[] . ->等操作符,同样前后不加空格。
12. 要学会适当的换行,换行使代码更清晰。代码行的最大长度应该控制在70~80个字符之内。
13. 所有的标识符必须由字母或下划线开头,标示符的其他部分可以是字母、下划线或数字组成。大小写字母表示不同的意义,即代表不同的标示符。
14. 标示符不能是关键字。即标示符不能和C语言的关键字相同,也不能和用户已编写的函数或C语言库函数同名。
15. 源程序错误分为3种类型:严重警告、一般错误和警告。
第二章 C语言基础
2.1 数据类型
1. 数据类型是程序设计语言的基本组成部分,用以说明数据的存储格式、存储空间的占用情况、可表达的数据范围及可施加的运算,在程序中所用到的数据都必须指定它的数据类型。 2. C语言中数据类型包括几个大方向:基本类型、构造类型、指针类型和空类型。如下:
3. 一般一个函数都会有一个返回值,这个返回值应该是具有特定的类型的,我将这个函数定义成什么类型,那么它的返回值就是一个什么样的类型,当然,我也可以进行强制类型转换,将它的返回值的类型变换成其他的类型。
2.2 常量
1. C语言将数据分为常量和变量,常量就是其值在程序运行过程中不可以改变的量。常量分为以下三大类:
数据类型 构造类型
空类型 基本类型
指针类型 双精度型 单精度型 长整型 基本整型 短整型
实型(浮点型) 枚举类型 字符型
整型
共用体类型 结构体类型 数组类型
常量 字符型常量
符号常量 实型常量 整型常量
数值型常量 2.2.1 整型常量
1. 八进制整数必须以0开头。
2. 十六进制整数的前缀为0X或0x。
3. 十进制整数没有前缀
4. 整型数据在内存中是以二进制的形式存放,数值是以补码表示的。
2.2.2 实型常量
1. 实型常量也称为浮点型常量,是一个十进制表示的有符号的实数,由整数和小数这两块组成,其中用十进制的小数点进行隔开。
2.2.3 字符型常量
1. 字符型常量可分为两种:一种是字符常量,另一种是字符串常量。
2. 字符常量中只能够包括一个字符,不是字符串。
3. 字符常量是区分大小写的。
4. 所使用的’ ’ 单撇号代表定界符,这不属于字符常量中的一部分。
5. 特殊字符常量就是转义字符。它是以反斜杠“\”为开头的字符,后面跟一个或几个字符。转义字符中只能使用小写字母,每个转义字符只能看作是一个字符。如果反斜杠之后的字符和它不构成转义字符,则“\”不起转义作用,将被忽略。
6. 使用双撇号括起来的若干字符序列称作字符串常量。空串的长度为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. 整型分为有符号和无符号两种,其中短整型(short int)占2个字节,基本整型(int)和长整型(long int)占4个字节。
2. 如果遇到数据溢出的情况时,编译器并不会报错,但是你得不到你想要的结果,所以说,在编程时,我们要对数据可存储的容量要有足够的了解。
2.3.2 实型变量
1. 实型变量也称为浮点型变量。实型变量根据实型的精度也可以分为3种,分别是:单精度类型(float 占4个字节)、双精度类型(double 占8个字节)、长双精度类型(long double占8个字节)
2. 使用sizeof 运算符能够很容易知道任一种数据类型的长度。如sizeof(int)的值就是一个整型的长度。
3. 不同的编译器为变量分配的内存空间不同。
2.3.3 字符型变量
1. 字符型变量(char)是用来存储字符常量的变量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。
2. 它存储的形式与整数的存储形式是一样的,所以C语言中允许字符型数据与整型数据之间同用。
2.4 运算符与表达式
2.4.1 赋值运算符与表达式
1. 在程序中经常遇到的赋值符号“=”就是赋值运算符,其功能是为变量赋值。由赋值运算符所组成的表达式为赋值表达式。
2. 并不是所有的表达式都可以作为左值,如常数,只可以作为右值。
3. 当赋值运算符“=”两侧的类型不一致时,但都是数值型或都是字符型时。在赋值过程中需要进行类型转换。类型转换有两种:一个是自动类型转换,另一个是强制类型转换。
4. 自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成,转换按数据长度增加的方向进行,以保证精度不降低。
5. 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按照四舍五入向前舍入。
6. 当高级别的精度向低级别的精度方向进行强制类型转换时,可能会出现数据丢失。这个时候可能会编译成功,但是得不到我们想要的精确的结果。
7. 无论是强制类型转换还是自动类型转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,并不改变数据的原始类型。
8. 在赋值符“=”之前加上其他的运算符,可以构成复合的运算符。如“+=”,“*=”等。
2.4.2 算术运算符与表达式
1. 算术运算符包括两个单目运算符正和负,5个双目运算符: + - * / % .
2. 求余运算符(模运算符)“%”, 为双目运算符,要求参与运算的量均为整型,求余运算的结果等于两数相除后的余数。
3. 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子称为算术表达式。运算对象包括常量、变量及函数等。
2.4.3 关系运算符与表达式
1. “关系运算”实际上是“比较运算”,关系运算符也就是比较两个操作数大小的符号。C语言中提供了六种关系运算符,它们是:> >= < <== == != .
2. 关系表达式的值是一个逻辑值,即“真”或“假”。
2.4.4 逻辑运算符与表达式
1. 逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。C语言中提供了3中逻辑运算符:&& || ! 。
2. 逻辑表达式的值应该是一个逻辑量“真”或“假”。在C语言中,表达式的值非0,那么其值为真。非0的值用于逻辑运算,则等价于1;假值总是0。
2.4.5 逗号运算符与表达式
1. C语言中逗号“ , ”也是一种运算符,称为逗号运算符。其优先级别最低,结合方向自左至右。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。该表达式的最终结果是最后那个表达式n的值。
2.4.6 三目运算符与表达式
1. C语言中唯一的三目运算符:条件运算符“?”,它的一般形式为:
表达式1 ? 表达式2 :表达式3;
在运算中,首先对第一个表达式的值进行检验。如果为真,返回第二个表达式的结果值;如果为假,则返回第3个表达式的结果值。
2. 在平时编程的时候我们得注意:需要仔细辨别“= =”和“=”的区别。前者是关系运算符,后者是赋值运算符。