《C程序设计第四版》笔记第三章讲解.docx
- 文档编号:2277920
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:20
- 大小:38.27KB
《C程序设计第四版》笔记第三章讲解.docx
《《C程序设计第四版》笔记第三章讲解.docx》由会员分享,可在线阅读,更多相关《《C程序设计第四版》笔记第三章讲解.docx(20页珍藏版)》请在冰豆网上搜索。
《C程序设计第四版》笔记第三章讲解
第三章最简单的C程序设计——顺序程序设计
3.1顺序程序设计举例(教材p37-p38)
3.2数据的表现形式及其运算
3.2.1常量和变量
在计算机高级语言中,数据有两种表现形式:
常量和变量。
1.常量
常量:
在程序运行过程中,其值不能被改变的量称为常量。
(程序中的数值常量就是数学中的常数)
C程序常量
序号
常量分类
表示形式
举例
说明
1
整型常量
整数
0,123,-123等等
2
实型常量
十进制小数形式
1.23,0.0,-0.35等等
由数字和小数点组成
指数形式
12.34e3(代表12.34*103)
-3.12E-25(代表-3.12*10-25)
…
由于在计算机输入或输出时,无法表示上角或下角,故规定以字母e或E代表以10为底的指数。
e或E之前必须有数字,并且e或E,后面必须为整数,如不能写成e4(e之前无数字),12e2.5(e之后为小数)。
3
字符常量
普通字符
a','A','?
','#‘',…
用单撇号括起来的一个字符,单撇号只是界限服,字符常量只能是一个字符,不包括单撇号。
字符常量存储在计算存储单元中时,并不存储字符本身,而是以其ASCII代码存储的。
转义字符
(转义字符是以字符\开头的字符序列,将”\”后面的字符转换成另外的意义。
如“”\n"中的“"n”不代表字母n,而作为”换行“符。
)
\'
一个单撇号
具有此八进制码的字符
\"
一个双撇号
输出此字符
\?
一个问号
输出此字符
\\
一个反斜线
输出此字符
\a
警告(alert)
产生声音或视觉信号
\b
退格(backspace)
将当前位置后退一个字符
\f
换页(formfeed)
将当前位置移到下一页的开头
\n
换行
将当前位置移到下一行的开头
\r
回车(carriagereturn)
将当前位置移到本行的开头
\t
水平制表符
将当前位置移到下一个tab位置
\v
垂直制表符
将当前位置移到下一个垂直制表对齐点
\o、\oo、\ooo
o代表1个八进制数字。
与该八进制码对应的ASCII字符。
\xh[h...]
其中h是代表一个十六进数字。
与该十六进制码对应的ASCII字符。
4
字符串常量
用双撇号把若干个字符括起来
"boy","123",…
字符串常量是双撇号中的全部字符,但不包括双撇号本身。
5
符号常量
用#define指令,指定用一个符号名称代表一个常量。
习惯上用大写表示符号常量。
#definePI3.14//行末没有分号
好处:
(1)含义清楚;
(2)在需要改变程序中多处用到的同一个常量时,能做到”一改全改“。
不要把符号常量误认为变量。
符号常量不占内存,只是一个临时符号,编译后符号就不存在,故不能对符号常量赋以新值。
2.变量
变量一个有名字的、具有特定属性的一个存储单元。
它用来存放数据,也就是存放变量的值。
在程序运行期间变量的值是可以改变的。
变量必须先定义后使用。
在定义时指定变量的名字和类型,一个变量应该有名字,以便与被引用。
变量名和变量值是两个不同的概念。
变量名是以一个名字代表的一个存储地址。
定义变量的位置:
一般在函数开头的声明部分定义变量,也可以在函数外定义变量(即外部变量、全局变量)。
在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。
从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。
3.常变量
常变量与常量
常变量与常量异同是:
常变量具有变量的基本属性:
有类型,占存储单元,只是不允许改变其值。
可以说,常变量是具有名字的不变量,而常量是没有名字的不变量。
有名字就便于在程序中被引用。
常变量与符号常量
例:
#definePi3.14//定义字符常量
Constfloatpi=3.14//定义常变量
本例二者都代表3.14,在程序中都能使用。
但二者的性质不同:
定义符号常量用#define指令,它是预编译指令,它只是用符号常量代表了一个字符串,在预编译时仅是进行字符转换,在预编译后,符号常量就不存在了(全置换成3.14),对符号常量的名字是不分配存储单元的。
而常变量要占用内存单元,有变量值,只是该值不改变而已。
常变量具有符号变量的优点,使用更方便。
4.标识符
标识符在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符(identifier)。
简单的说,标识符就是一个对象的名字。
c语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
编译系统将大写字母和小写字母认为是两个不同的字符。
一般而言,变量名都用小写字母表示。
3.2.2数据类型
用计算机进行的计算不是抽象的理论值的计算,而是用工程的方法实现的计算,许多情况下只能得到近似的结果。
所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。
不同的类型分配不同的长度和存储形式。
基本整型(int)
短整型(shortint)
整型类型长整型(longint)
双长整型(longlongint)c99增
字符型(char)
基本类型布尔型(bool)c99增
单精度浮点型(float)
浮点类型双精度浮点型(double)
数据类型复数浮点型(float_complex,
double_comple,longlong_comple)
枚举类型(enum)
空类型(void)
指针类型(*)
数组类型([])
派生类型结构体类型(struct)
共用体类型(union)
函数类型
3.2.3整型数据
1.整型数据的分类
(1)基本整型(int)
整型数据在存储单元中的存储方式是:
用整数的补码形式存放。
一个正数的补码是此数的二进制形式。
求负数补码的方法是:
先将此数的绝对值写成二进制形式,然后对其后面所有各二进位按位取反,再加1。
(教材p44)
在存放整数的存储单元中,最左面一位是用来表示符号的,如果该位为0,表示数值为正;如果该位为1,表示数值为负。
(2)短整型(shortint)
VisualC++6.0编译系统分配给int数据4个字节,短整型2个字节。
一个短整型变量的值的范围是:
-32768~32767。
(3)长整型(longint)
VisualC++6.0编译系统分配给longint数据4个字节。
长整型(longint)变量的值的范围是-231~(231-1),即:
-2147483648~2147463647。
2.整型变量的符号属性
整型数据加上修饰符unsigned(无符号整数)和signed(有符号整数)后,可以扩展为以下八种整形数据:
有符号基本整型[signed]int;
无符号基本整型unsignedint;
有符号短整型[signed]short[int];
无符号短整型unsignedshort[int];
有符号长整型[signed]long[int];
无符号长整型unsignedlong[int];
有符号双长整型[signed]longlong[int];//C99增加
无符号双长整型unsignedlonglong[int]。
//C99增加
不能给定义为无符号型整型变量赋予负值。
3.2.4字符型数据
由于字符是按其代码(整数)形式存储的,因此C99把字符型数据作为整数类型行的一种。
1.字符与字符代码,
并不是任意写的一个字符程序能够识别,如圆周率符号程序是不能识别的。
大多数系统采用,ASCII字符集,各种字符集基本都包括了127个字符。
每个字符都可以用7个二进位表示,所以在C中,指定一个字节(8位)存储一个字符。
字母:
A~Z,a~z。
数字:
0~9。
专门符号:
29个。
!
”#&‘()*+-…
空格符:
空格、水平制表符(tab)、垂直制表符、换行、换页(formfeed)
不能显示的字符:
空(null)字符(以’\0’表示)、警告(以’\a’表示)等。
2.字符变量
字符变量是用类型符char定义字符变量。
char是英文character(字符)的缩写。
例:
charc=‘?
’;//定义c为字符型变量,并使初值为字符’?
’。
字符’?
‘的ASCII代码是63,系统把整数63赋给变量c。
字符型变量可以用修饰符signed和unsigned。
类型
字节数
取值范围
Signedchar有符号字符型
1
-128~127,即-27~(27-1)
Unsignedchar无符号字符型
1
0~255,即0~(28-1)
3.2.5浮点型数据
浮点型数据是用来表示具有小数点的实数的。
一个实数表示为指数可以有不止一种形式,小数点的位置可以浮动,所以实数的指数形式称为浮点数。
在指数形式的多种表示方式中,把小数部分中小数点前的数字为0、小数点后第一位数字不为0的表示形式称为规范化的指数形式。
(1)float型(单精度浮点型)
float型数据能得到6位有效数字,取值范围-3.4*10-38~3.4*1038。
(2)double型(双精度)
double型数据可以得到15位有效数字。
(3)longdouble型(长双精度)
3.2.6怎样确定常量的类型
字符常量,由单撇号括起来的单个字符或转义字符就是字符常量。
整型常量,不带小数点的数值是整型常量,但应注意其有效范围。
浮点型常量,凡以小数形式或指数形式出现的实数是浮点型常量,在内存中以指数形式存储。
C程序中的实型常量都是双精度浮点型常量。
3.2.7运算符和表达式
1.基本的算术运算符
最常用的算术运算符
运算符
含义
举例
结果
+
正号运算符(单目运算符)
+a
a的值
-
负号算符(单目运算符)
-a
a的算术负值
*
乘法运算符
a*b
a和b的乘积
/
除法运算符
a/b
a除b的商
%
求余运算符
a%b
a除b的余数
+
加法运算符
a+b
a和b的和
-
减法运算符
a-b
a和b的差
2.自增、自减运算符
++i,--i(在使用i之前,先使i的值加(减)1)
i++,i--(在使用i之后,使i的值加(减)1)
自增运算符和自减运算符只能用于变量,而不能用于常量或表达式。
常用于循环语句中,使循环变量自动加1(或减1),也用于指针变量,使指针指向下一个(上一个)地址。
在使用运算符时,如遇到诸如i+++j,为避免二义性,可以通过加括号来明确,如写成(i++)+j。
3.算术表达式和运算符的优先级与结合性
用算术运算符和括号将运算对象(也称操作数)连接起来的符合C语法规则的式子,称为C算术表达式。
运算对象包括常量、变量、函数等。
如:
a*b/c-1.5+’a’
在表达式求值时,先按运算符的优先级别顺序执行。
如果一个运算对象两侧的运算符号的优先级别相同,则按规定的结合方向处理。
结合性是指规定运算对象与运算符的“结合方向“,即先与左边的运算符结合,还是先与右边的运算符结合。
自左至右的结合方向,又称为左结合性。
4.不同类型数据间的混合运算
(1)+、-、*、/运算的两个数中有一个数为float或double型,结果是double型。
(2)int型与float或double
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计第四版 程序设计 第四 笔记 第三 讲解
![提示](https://static.bdocx.com/images/bang_tan.gif)