第3章数据类型、运算符、表达式--C语言程序设计(谭浩强第三版)
时间:2025-04-26
时间:2025-04-26
第三章 数据类型、运算符、表达式C语言的词法记号 C语言的数据类型
常量与变量 各类数值间的混合运算 运算符和表达式
本章介绍C语言的基础,主要包括: – 数据类型 – 运算符和表达式 均是程序设计的基本知识 为什么讨论这些知识? 通常程序要对数据进行操作处理: – 处理的对象是数据 – 通过运算符和表达式进行操作
【例】计算圆的面积,半径为 5 cm。 程序如下: main( ) { float r, area ; r=5 ; area=3.14*r*r; printf ("%f\n ", area) ; } 运算结果是输出圆的面积:78.500000 程序中用到的数据:r、area、5、3.14 对数据进行的运算:* 、=
分析:
涉及数据类型 的基本知识
计算机操作处理时,要完成以下工作: 在内存中给半径 r 和运算结果 area 开辟存储空间,存 放它们的值。应该留多大的地方来存放它们的值? 数据 5 和 3.14 与 r 、area 不同,它们是在编写程序 时就给出确定的值,在运算过程中不会改变。这样的数 计算机怎么处理? 对整数 5 和小数3.14 ,计算机存放时是否有区别?
3.1 C语言的词法记号引例: /*求得并输出两数相加之和*/ #include <stdio.h> int Add(int a, int b) { return (a + b); } void main( ) /*主函数*/ { int x, y, sum = 0; scanf("%d%d", &x, &y); /*输入两个整型数x和y*/ sum = Add(x, y); /*调用函数Add求x和y相加之和*/ printf("sum = %d\n", sum); /*输出x和y相加之和*/ }
C语言的词法单位可分成6类:1、关键字(Keyword)又称为保留字(37个)见P378附录C –c语言预先规定的具有固定含义的一些单词 如:数据类型修饰符int, 控制语句return等 2、标识符(Identifier) –系统预定义标识符,main,printf、include等 –用户自定义标识符,Add, x, y 等 3、运算符(Operator) –34种,详见P378附录D + 、 = 4、分隔符(Separator) –空格、回车/换行、逗号等 5、其它符号 –大花括号 {”和 }”通常用于标识函数体或者一个语句块 – /*”和 */”or // 是程序注释所需的定界符 – #”、 < >等 6、数据(Data) –变量(Variable) –常量(Constant)
1、关键字:又称保留字,指具有特定含义、专门用作系统的 特定成分的一类标识符。不能用作一般标识符,即不允许用作
变量名或函数名等。标准C语言中共有37个关键字,按用途分为4类: 数据类型:如char int等 存储类:如auto return等 流程控制:如if else switch等 运算符: sizeof 注意关键字C语言的关键字都是小写的。例如else是关键字,但 ELSE就不是关键字37个关键字:(由系统定义,不能重作其它定义) auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struc
t switch typedef union unsigned void volatile while _bool _Complex _Imaginary
2、标识符 定义:用来标识变量、常量、函数等的字符序列 组成: –只能由字母、数字、下划线组成,且第一个字母必须 是字母或下划线 –大小写敏感 –不能使用关键字 长度:最长32个字符 命名原则: –见名知意 –不宜混淆 如l与I, o与0 例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123
3、运算符和表达式(34种、15个优先级)算术运算符:(+ - * / % ++ --) 关系运算符:(< <= == > >= !=) 逻辑运算符:((! && ||) 位运算符 :(<< >> ~ | ^ &) 赋值运算符:(= 及其扩展) 条件运算符:(?:) 逗号运算符:(,) 指针运算符:(* &) 求字节数 :(sizeof) 强制类型转换:(类型) 分量运算符:(. ->) 下标运算符:([]) 其它 :(( ) -)
C 运 算 符
3.2 C的数据类型数据是操作的对象,数据类型 是数据的外在表现形式,常见 类型如下: 数值类型基本类型 整 型
短整型short 整型int 长整型long 单精度型float 双精度型double
实 型 字符类型char 数组 结构体struct 共用体union 枚举类型enum
C 数 据 类 型
构造类型
指针类型 空类型void 定义类型typedef
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 可进行的操作
3.2.1 基本数据类型——整型1、整型数据的分类:
大的方面分有符号数(signed)和无符号数(unsigned)两种类型。 又根据整型数据在内存中所占的字节数(或者根据整型数据能
表示的数的范围大小)分为:基本型 短整型 长整型 int short [int ] long [int ]
这样一共组合成6种.
2、整型数在内存中的存放和表示范围: 不同的编译系统为整型数据分配的字节数是不相同的, Turbo C 2.0为一个int型数据在内存中分配2个字节的存储单元。 VC++ 6.0则分配4个字节。 整数类型 所占位 定义类型字 数 16 int 16 short [int ] 32 long [int ] 16 16 32 unsigned [int] unsigned short unsigned long 表示数的范围
有 符 号无 符 号
基本型 短整型 长整型 基本型 短整型 长整型
-32768 ~ +32767 -32768 ~ +32767-231 ~(231-1 ) 0 ~ 65535 0 ~ 65535 0 ~(232-1)
3、整型数据的溢出 ―溢出 是指运算结果过大,而超出了表示范围的一种错 误状态。C编译程序不检测这种错误。 例 整型数据的溢出 说明: #include <stdio.h> 数值是以补码表示的。 void main() { int型范围-32768~32767, int a,b; 加1发生 溢出 。 a=32767; 改变办法:预先定义b为long类型 b=a+1; printf(“%d,%d\n”,a,b); }
3.2.2基本数据类型—— 实型数据1、实型(浮点型)程序中有两种表示法 …… 此处隐藏:1656字,全部文档内容请下载后查看。喜欢就下载吧 ……