《C语言程序设计基础与实训教程》第2章:数据类型、运算符和表达式
合集下载
《C语言程序设计》第二章 数据类型、运算符和表达式

用户标识符 作用:标记常数、变量、自定义数据类型、函数及 程序的名字
取名规则:
以字母或下划线‘_’中任一字符打头; 在第一字符之后,可以是任意的字母、下划线或数 字组成的字符序列,这个字符序列可以是空串。
用户标识符
说明:
不要与保留字同名; C语言中大小写字母有不同的含义,即区分大小写。 name和Name在C中是两个不同的标识符; 习惯上除了符号常数,一般都用小写字母表示; 标识符长度不限,但只识别前8个字符。 例: 正确:a, a1, f_1, area, _age 错误:2a, last name, no#, -xy, char
变量的定义 变量表示在C程序中的基本存储单元。变量是指在程 序运行过程中其值可以改变的量。变量必须“先定义 后使用”。
定义一般形式: 类型
例: int age, index; float x, y;
变量标识符表;
double z;
定义一般形式: 类型 定义变量的作用:
变量标识符表;
使一变量属于某一确定的类型,即规定该 变量的取值范围及它能执行的运算操作 ; 编译时能为其分配相应的存储单元,并确 定其存储形式,同时根据其定义检查该变量所 进行的运算合法性 。
短整型(short int )
整型
整型(int) 长整型(long int)
C 中 的 类 型 划 分
基本类型
实型
单精度型(float) 双精度型(double)
构造类型
数组类型 结构类型(struct) 共用体(union) 文件类型(FILE)
指针类型 空类型(void)
不同类型 的数据在计 算机中的存 储格式也不 同,以32位 机为例说明。
C语言程序设计基础实验教程第二章数据类型、运算符、表达式、赋

char unsigned char
32
0~4294967295
32
±3.4e-38~3.4e38
64
±1.7e-308~1.7e308
8
-128~127
8
0~255
说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例 请看int和unsigned int
10
第二章 数据类型、运算符、表达式、赋值语句、输入输出
关键词 标识符 常量 运算符 分隔符 [ ] ( ) { } * . : = ; #
3
关键词 第二章 数据类型、运算符、表达式、赋值语句、输入输出 关键词:C语言中预定义的符号,有固定的含义(32个) 用途:
存储类别 auto extern register static 类型定义 typedef 流程控制 break case continue default do else
char a>bb _above $123
8
第二章 数据类型、运算符、表达式、赋值语句、输入输出
数据类型
数据类型总表
基本类型
整型 浮点型
短整型 short 整型 int 长整型 long 单精度型 float 双精度型 double
字符类型 char
C
数组
数据类型决定:
数
结构 struct
1. 数据占内存字节数
16
-32768~32767
16
-32768~32767
整
(signed)long
型
unsigned int
无 unsigned short
32
-2147483648~2147483647
C语言程序设计第2章-1数据类型、运算符和表达式

1、按运算符的功能分成:算术运算符、关系运算符、逻辑运算 符、赋值运算符、位运算符、条件(tiáojiàn)运算符、自增和自减 运算符、逗号运算符、指针运算符、强制类型转换运算符、 分量运算符、下标运算符、求字节数运算符、函数调用运算 符等等。
2、 C 语言的运算符的优先级与结合性
3、表达式:由操作数和运算符组成的序列。
5
精品文档
⒉ 真值: 带符号位的机器数对应的数值称为机器数的真值。 (10100011)2= -35
⒊ 无符号数:当计算机字长的所有二进位都用来表示(biǎoshì)数值时,称 为无符号数。
2.2.2 原码、反码和补码
⒈ 原码
整数 X 的原码指:其数符位 0 表示正,1 表示负,其数值部分
就是 X 的绝对值的二进制表示。
2.1 常用 的进位制 (chánɡ yònɡ)
2.1.1 二进制、八进制和十六进制(shíliùjìn zhì)数
3
精品文档
2.1.2十、二进制、八进制和十六进制数之间的换算
⒈ 二、八、十六进制数 → 十进制数的换算采用按权展开法。
(2AB.F)16 = 2χ162+10χ161+11χ160+15χ16-1 = 683.93 ⒉ 十进制数 → 二进制数的换算整数部分(bù fen)采用除以二取余直到商
19
精品文档
2.5.1 算术运算符与算术表达式
⒈ 基本的算术运算符:
14
精品文档
3.字符常量
字符常量是用单撇号括起来的单个字符或转义字符,
如: ‘a’, ‘9’, ‘&’, ‘\n’, ‘\’’, ‘\101’。
字符常量的值为该字符的ASCII码值,如 ‘a’值为97, ‘\n’
2、 C 语言的运算符的优先级与结合性
3、表达式:由操作数和运算符组成的序列。
5
精品文档
⒉ 真值: 带符号位的机器数对应的数值称为机器数的真值。 (10100011)2= -35
⒊ 无符号数:当计算机字长的所有二进位都用来表示(biǎoshì)数值时,称 为无符号数。
2.2.2 原码、反码和补码
⒈ 原码
整数 X 的原码指:其数符位 0 表示正,1 表示负,其数值部分
就是 X 的绝对值的二进制表示。
2.1 常用 的进位制 (chánɡ yònɡ)
2.1.1 二进制、八进制和十六进制(shíliùjìn zhì)数
3
精品文档
2.1.2十、二进制、八进制和十六进制数之间的换算
⒈ 二、八、十六进制数 → 十进制数的换算采用按权展开法。
(2AB.F)16 = 2χ162+10χ161+11χ160+15χ16-1 = 683.93 ⒉ 十进制数 → 二进制数的换算整数部分(bù fen)采用除以二取余直到商
19
精品文档
2.5.1 算术运算符与算术表达式
⒈ 基本的算术运算符:
14
精品文档
3.字符常量
字符常量是用单撇号括起来的单个字符或转义字符,
如: ‘a’, ‘9’, ‘&’, ‘\n’, ‘\’’, ‘\101’。
字符常量的值为该字符的ASCII码值,如 ‘a’值为97, ‘\n’
C语言程序设计第02章-数据类型、运算符和表达式

个个的字节构成的。
203
内
一 个 二 进
②每个字节可以容纳8位二进 制数。
204 0 0 0 0 1 1 1 1
制 位
③每个字节都有唯一的内存
205
地址。
206
存
207
整理ppt 12
变量
所谓变量,就是在程序执行过程中,其值可以被改变的量。
通俗地讲,变量就像高档饭店的房间,这体现在以下几个方面:
对某个房间来说,一拨客人 在C程序中,变量就是建立在 走后,另一拨客人可以进来,虽 内存里的房间,它用来存储不断 然房间不变,但里头吃饭的人 变化的信息。存放在变量中的信
第2章 基本数据类型
在实际问题中,可能会遇到各种各样的数据。这 些数据都以某种特定的形式存在着。
年龄:22
整数
工资:2381.85
实数
姓名: Hussein Sadam 字符串
为了方便地表示这些不同种类的数据,C语言提 供了丰富的数据类型。
本章仅介绍基本数据类型
整理ppt 2
2.1 C的数据类型(Data Types)
①符号常量名习惯上常用大写;
……
②符号常量是常量而不是变量, s=PI*0.6*0.6;
不允许用赋值运算等改变它的值
……
整理ppt 11
变量 (Variables)
一个字节
内存(memory):
内存地址
34
每台计算机都要有内存,程 序只有装入内存中,才可能
201
被执行。
202
①从逻辑上看,内存是由一
整理ppt 4
标识符 (Identifier)
标识符
变量名、符号常量名、函数名、类型名…
C语言程序设计第2章 数据类型、运算符与表达式

整数类型是以二进制数据形式存储的,确 切地说是以二进制补码形式。
9
一、整型
整数的存储方式 一个十进制整数,先转换为二进制形式 如整数15,以二进制形式表示是1111 用一个字节存放
0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 用两字节存放 负数按补码形式存放 请问:-15又是如何存储的呢?
27
四、字符串常量
字符串常量与字符常量的区别:
(5)字符串中可以有转义字符。 (6)单引号和双引号只是字符和字符串的定界符,如果字符 常量本身是单引号,则要用转义字符,如‘\‟‟ 。
'a'是一个字符常量 "a"是一个字符串常量
a
a \0
空字符作为字符串常量的结束
28
五、符号常量
用一个标识符来代表一个常量,称为符号常量。 符号常量在使用前必须先定义,用宏定义的形式, 其一般定义格式为:
31
2.2.2 变量
变量是指在程序运行过程中其值可以变化的量。 C语言要求在使用变量之前必须先进行声明。 给变量指定一个标识符,这个标识符称为变量名; 变量名(标识符)的命名规则: 只能由字母、数字或下划线组成; 第一个字符必须是字母或下划线。
32
1、变量的声明
声明一个变量包括: 指定该变量的数据类型,该类型决定了变量值的 类型、表现形式和占用内存空间,以及对该变量能 执行的运算; 指定变量的存储类型和变量的作用域。
22
二、实型常量
0、1.2
1.2、7.、.36、1e3、1.8e-3、-.1e-3
、3、e3、2.1e3.5、.e3、e
在实型常量中不能有空格。 默认状态下,实型常量被识别为双精度 (double)类型。可以使用后缀F或f表示单精 度(float)类型,后缀L或l表示长双精度 (long double)类型。比如123.56是double类 型,123.56f是float类型,1.2356E2L是long double类型。
《C语言程序设计》2教学课件 第2章 数据类型、运算符及表达式

短整型short 整型 整型 int
数值类型 基本数据类型
字符类型
长整型long 单精度型float 实型
双精度型double
数据类型 构造数据类型 指针类型
数组 结构体struct 共用体union 枚举类型enum
空类型void
C语言数据类型
—4—
2.1 基本概念
➢ 2.1.1 标识符
在C语言中,所谓标识符,是指用来标识程序中用 到的变量名、函数名、类型名、数组名、文件名及 符号常量名等的有效字符序列。标识符的命名规则 是:由字母、数字及下划线组成,且第一个字符必 须是字母或下划线。
float radius, area; radius=10.0; area=PI*radius*radius; printf("area=%f", area); return 0; }
程序运行的结果为:
area=314.158997
/*预定义符号常量PI*/ /*编译预处理指令*/
/*定义变量*/ /*赋值*/ /*计算圆的面积*/ /*输出*/
printf("%f\n",42.f); printf("%f\n",42.); return 0; }
运行结果为:
42.000000 42.000000
/*编译预处理指令*/
/*输出42.f */ /*输出42.*/
— 29 —
2.2 基本数据类型
➢ 2.2.2 实型数据
2.实型数据在内存中的存放形式
➢ 2.2.1 整型数据
例如:
a=1256L; b=500U;
/*L表示长整型*/ /*U表示无符号整型*/
在使用整型常量时,可以在常量的后面加上字符L (l)或者U(u)进行修饰。 ➢ L表示该常量为长整型 ➢ U表示该常量为无符号整型
C语言教程第2章数据类型、运算符与表达式
const float pi = 3.1425926;
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
C语言程序设计项目2数据类型、运算符与表达式
无符号基本整型 unsigned int;
有符号短整型
[signed] short [int];
无符号短整型
unsigned short [int];
有符号长整型
[signed] long [int];
无符号长整型
unsigned long [int];
有符号双长整型 [signed] long long [int];
② 转义字符,除了以上形式的字符常量外,C还允许用一种特殊形式的字 符常量,就是以字符﹨开头的 字符序列。例如,前面已经遇到过的,在printf函 数中的‘﹨n’它代表一个“换行”符。
常用的以“﹨”开头的特殊字符见表 2.1
任务2.1 常量、变量和标示符
表2.1
任务2Байду номын сангаас1 常量、变量和标示符
⑷ 字符串常量。如“boy”,“123”等,用双撇号把若干个字符括起来,字
图2.1
任务2.1 常量、变量和标示符
3、常变量 如 const int a=3表示a被定义为一个整型变量,指定其值为3,而且在变量 存在期间其值不能改变。 常变量与常量的异同是:常变量具有变量的基本属性,有类型,占存储单 元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是没有 名字的不变量,有名字就便于在程序中被引用。
关系运算符赋值运算符及其扩展赋值运算符条件运算符求字节数运算符sizeof强制类型转换运算符类型成员运算符其他如函数调用运算符任务23运算符和表达式235强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型
1 项目2 数据类型、运算符与表达式
➢ 项目导读 ➢ 项目目标 ➢ 项目任务
任务2.1 常量、变量和标示符
C语言程序设计第2章数据类型、运算符和表达式
x++为6,x值为 为 , 值为 值为6 y-- 为6 ,y值为 值为5 值为
13
C语言程序设计教程
2.4浮点型数据 浮点型数据
实型常量或实数, 浮点型常量 :实型常量或实数,它只有十进 制形式, 制形式,全部都是有符号数
小数形式: 小数形式:0~9,小数点和正负号表示 , 指数形式: 号和字母e/E 指数形式:0~9、小数点、+ -号和字母 、小数点、 号和字母
说明: 说明: 浮点型常量的默认类型是double (1)浮点型常量的默认类型是double 在常量后面加f 指定为float float型 (2)在常量后面加f或F指定为float型 (3)指数必须为整数 e/E之前必须有数字 (4)e/E之前必须有数字
字符变量的定义形式
char 变量名表; c1,c2; ; 变量名表char
char c1,c2; , ; #include<stdio.h> int main() { char c1='a',c2='b'; c1=c1-('a'-'A'); c2=c2-('a'-'A'); printf("%c %c\n",c1,c2); return 0; } 程序运行结果: 程序运行结果: A B
构造类型:数组、结构体、共用体、 构造类型:数组、结构体、共用体、枚举 指针类型
3
C语言程序设计教程
2.2 常量与变量
2.2.1标识符命名 标识符命名 2.2.2常量 常量 2.2.3变量 变量
4
C语言程序设计教程
2.2.1标识符命名 标识符命名
标识符:字符序列的总称。 标识符:字符序列的总称。在C语言里用标 语言里用标 示符来表示常量、变量、 示符来表示常量、变量、函数和数据类型的 名字
C语言第2章—数据类型、运算符及表达式
1 a+ 5 18 / b 0
运用举例
2、已知int a=3467,写出计算其个、十、 百、千位的表达式。 解:a%10, a/10%10, a/100%10, a/1000%10或a/1000
3、如下的表达式是否正确? ①(x+y)(x-y) ②5x+1
19
增量和减量运算符 P30
增量++、减量运算符-- (单目运算符) 作用:使变量的值增加1或减少1 表示: • 前置运算 ++i或--i 先使i加(减)1,再使用变量i的值。 • 后置运算 i++或i-先使用变量i的值,再使i加(减)1。 ++、--只能用于变量,不能用于常量。
(X%4==0)&&(X%100!=0)||(X%100==0)&&(X%400==0)
31
注意
例
a&&b&&c
• a为false(0)时,不必判断 b和 c,结果一定为 false a||b||c • 若a为true(非0),不必判断 b和 c,结果一 定为 true(1)
32
4条件运算符P31
• 如果在定义变量时没有对变量进行未初始化,则 变量使用的第一步就是给变量赋一个确定的值。
例:
int a,b,c; a=1; b=3; c=4;
Men Quit u
2.3 运算符与表达式
• 所谓运算符就是指运算的符号,例如加运算符( +)、乘运算符(*)、取地址运算符(&)等。 • 表达式:用运算符把运算对象连接起来的式子 • 运算对象:常量、变量、函数、指针、数组元素 等
//定义1个字符型变量c1,占1B
运用举例
2、已知int a=3467,写出计算其个、十、 百、千位的表达式。 解:a%10, a/10%10, a/100%10, a/1000%10或a/1000
3、如下的表达式是否正确? ①(x+y)(x-y) ②5x+1
19
增量和减量运算符 P30
增量++、减量运算符-- (单目运算符) 作用:使变量的值增加1或减少1 表示: • 前置运算 ++i或--i 先使i加(减)1,再使用变量i的值。 • 后置运算 i++或i-先使用变量i的值,再使i加(减)1。 ++、--只能用于变量,不能用于常量。
(X%4==0)&&(X%100!=0)||(X%100==0)&&(X%400==0)
31
注意
例
a&&b&&c
• a为false(0)时,不必判断 b和 c,结果一定为 false a||b||c • 若a为true(非0),不必判断 b和 c,结果一 定为 true(1)
32
4条件运算符P31
• 如果在定义变量时没有对变量进行未初始化,则 变量使用的第一步就是给变量赋一个确定的值。
例:
int a,b,c; a=1; b=3; c=4;
Men Quit u
2.3 运算符与表达式
• 所谓运算符就是指运算的符号,例如加运算符( +)、乘运算符(*)、取地址运算符(&)等。 • 表达式:用运算符把运算对象连接起来的式子 • 运算对象:常量、变量、函数、指针、数组元素 等
//定义1个字符型变量c1,占1B
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在本章中,我们只介绍数据类型的说明。 在本章中,我们只介绍数据类型的说明。其它 说明在以后各章会陆续介绍。 说明在以后各章会陆续介绍。所谓数据类型 是按被定义变量的性质、表示形式、 是按被定义变量的性质、表示形式、占据存 储空间的多少和构造特点来划分的。 储空间的多少和构造特点来划分的。在C语 言中,数据类型可分为:基本数据类型, 言中,数据类型可分为:基本数据类型,构 造数据类型,指针类型,空类型四大类。 造数据类型,指针类型,空类型四大类。见 图2-1。 。
在字符常量里面,有一种以反斜线"\"开 在字符常量里面,有一种以反斜线 开 后跟一个或几个字符的特殊字符常量, 头 、 后跟一个或几个字符的特殊字符常量 , 称为转义字符。转义字符具有特定的含义, 称为转义字符 。 转义字符具有特定的含义 , 不同于字符原有的意义,故称“转义”字符。 不同于字符原有的意义 , 故称 “ 转义 ” 字符 。 例如,在前面各例题printf函数的格式串中用 例如,在前面各例题 函数的格式串中用 到的'\n'就是一个转义字符 其意义是“ 就是一个转义字符, 到的 就是一个转义字符,其意义是“回车 换行” 换行 ” 。 转义字符主要用来表示那些用一般 字符不便于表示的控制代码。 字符不便于表示的控制代码 。 以下是常用转 义字符表。 义字符表。
3. 指针类型:指针是一种特殊的,同时又是具有重 . 针类型:指针是一种特殊的, 要作用的数据类型。 要作用的数据类型 。 其值用来表示某个变量在内存 储器中的地址。 储器中的地址。 4. 空类型:空类型 类型:空类型void只能申明函数的返回值类型, 只能申明函数的返回值类型, . 只能申明函数的返回值类型 不能申明变量。 在调用函数值时, 不能申明变量 。 在调用函数值时 , 通常应向调用者 返回某种类型的一个函数值, 返回某种类型的一个函数值 , 如果不需要有函数返 回值, 则在函数定义前面加上void表示空类型 。 在 表示空类型。 回值 , 则在函数定义前面加上 表示空类型 后面函数中还要详细介绍。 后面函数中还要详细介绍。 在本章中,我们主要介绍基本数据类型中的整型、 在本章中,我们主要介绍基本数据类型中的整型、浮 点型和字符型。其余各种类型以后分别有章节介绍。 点型和字符型。其余各种类型以后分别有章节介绍。
ASCII代码 转义字符 转义字符的意义 代码 \n 10 回车换行 \t 横向跳到下一制表位置 9 \b 退格 8 \r 13 回车 \f 12 走纸换页 \\ 反斜线符( ) 92 反斜线符(\) \‘ 单引号符 39 \‘’ 34 双引号符 \a 7 响铃 \ooo 1~3位八进制数所代表的字符 ~ 位八进制数所代表的字符 \xhh 1~2位十六进制数所代表的字符 ~ 位十六进制数所代表的字符 表2-1 常用的转义字符及其含义
2、 指数形式。任何一个合法的指数形式的实 、 指数形式。 型常量从左往右都是由数字,字母e( 型常量从左往右都是由数字,字母 (或E) ) 和指数三部分组成。 和指数三部分组成。如:45.3e5、-231.23E12、 、 、 -0.12e-2、12e0等均是合法形式。 等均是合法形式。 、 等均是合法形式 注意:用指数形式表示实数时, 前必须有数字 注意:用指数形式表示实数时,e前必须有数字 错误, ),e (如e3错误,系统会将其视为一个变量), 错误 系统会将其视为一个变量), 后面的指数必须是整数。 后面的指数必须是整数。
第2章 数据类型、运算符和表达式
(时间:3次课,6学时)
第2章 数据类型、运算符和表达式
学习目的与要求:
本章是包括C语言的数据类型、运算符和表达 式, 是C语言程序设计最基础的部分。通过这一章 的学习,使学生了解C语言的数据类型,掌握各种 数据类型所占的字节数、使用方法、类型的自动转 换和强制转换,标志符的使用规则;掌握各种常量 的使用,变量的基本概念及定义、初始化和在内存 中的存储形式;掌握算术运算符的使用,运算符的 使用规则、优先级和结合性等。
图2-1 C语言的数据类型 语言的数据类型
1、基本数据类型:基本数据类型最主要的特点是, 基本数据类型:基本数据类型最主要的特点是, 其值不可以再分解为其它类型。他包括整型、 其值不可以再分解为其它类型。他包括整型、字符 实型(分为单精度型和双精度型) 型、实型(分为单精度型和双精度型)和枚举类型 四种。 四种。 2、 构造数据类型:构造数据类型是根据已定义的 、 构造数据类型: 一个或多个数据类型用构造的方法来定义的。 一个或多个数据类型用构造的方法来定义的。也就 是说,一个构造类型的值可以分解成若干个“成员” 是说,一个构造类型的值可以分解成若干个“成员” 元素” 每个“成员” 或“元素”。每个“成员”都是一个基本数据类型 或又是一个构造类型。 语言中, 或又是一个构造类型 。 在 C 语言中 , 构造类型有以 下几种: 下几种: ·数组类型 数组类型 ·结构体类型 结构体类型 ·共用体(联合)类型 共用体( 共用体 联合)
第2章 数据类型、运算符和表达式
2.4 运算符和表达式 2.4.1 C运算符简介 2.4.2 算术运算符和算术表达式 2.4.3 赋值运算符和赋值表达式 2.4.4 逗号运算符和逗号表达式 2.5 上机实训 2.6 习题
2.1 C的数据类型 C的数据类型
在第一章中, 在第一章中,我们已经看到程序中使用的各种 变量都应预先加以定义,即先定义,后使用。 变量都应预先加以定义 , 即先定义 , 后使用 。 对变量的定义可以包括三个方面: 对变量的定义可以包括三个方面: ·数据类型 数据类型 ·存储类型 存) 字符型( char ) 基本类型 实型(浮点型) 枚举类型( enum ) 逻辑型(bool) 数组 ( type[ ] ) 构造类型 双精度型( double ) 单精度型( float )
数据类型
结构体( struct )
共用体 ( union ) 指针 ( type[] ) 空类型 ( void )
一个实数可以有多种指数的表示形式,我们只要在改 一个实数可以有多种指数的表示形式, 变小数点位置时相应的改变指数的值即可。如- 231.23E12还可以写成 - 23.123E13、 - 2312.3E11、 - 还可以写成- 还可以写成 、 、 2.3123E14、 - 0.23123E15等等 , 这样就容易造成用户 等等, 、 等等 和系统处理数据的不便,所以C语言有一个 语言有一个“ 和系统处理数据的不便,所以 语言有一个“规范化指 数形式”的概念,这种形式规定在字母e( 数形式”的概念,这种形式规定在字母 (或E)前的小 ) 数部分中,小数点左边应有一位(且只能有一位) 数部分中,小数点左边应有一位(且只能有一位)非零 的数字。 如前面几个例子中, 只有- 的数字 。 如前面几个例子中 , 只有 - 2.3123E14是规范 是规范 化指数形式,其他的都不是。 化指数形式,其他的都不是。一个实数在使用指数形式 输出时,是采用规范化指数形式输出的。 输出时,是采用规范化指数形式输出的。 实型常数不分单、双精度,都按双精度double型处理。当 型处理。 实型常数不分单、双精度,都按双精度 型处理 如果想使用float型的实型常量,可以在此实数后加 型的实型常量, 然,如果想使用 型的实型常量 F(或f)表示;同理,实数后加 (或l)表示它是 ( )表示;同理,实数后加L( )表示它是long double类型。 类型。 类型
2.2.2 实型常量
实数( 实数 ( real number) 又称浮点数 ( floating) 又称浮点数( point number),他有两种表示形式: ) 他有两种表示形式: 1、 十进制小数形式。由数字和一个小数点组 、 十进制小数形式。 且小数点不可缺少。 成 , 且小数点不可缺少 。 如 : 3.12、 .123、 、 、 123.、0.0等均是合法形式 。 注意 : 小数点前 等均是合法形式。 、 等均是合法形式 注意: 面或后面没有数字也是合法的形式。 面或后面没有数字也是合法的形式。
第2章 数据类型、运算符和表达式
2.1 2.2 C的数据类型 常量 2.2.1 整型常量 2.2.2 实型常量 2.2.3 字符型常量和符号常量 2.2.4 符号常量 2.3 变量 2.3.1 变量概述、标志符 2.3.2 整型变量 2.3.3 实型变量 2.3.4 字符变量 2.3.4 变量赋初值 2.3.5 不同类型数据间的相互转换 2.3.6 数值的定点表示形式与浮点表示形式
程序中使用转义字符\ 或者\ 在C程序中使用转义字符 d d d或者 x h h可以 程序中使用转义字符 或者 可以 方便灵活地表示任意字符。 方便灵活地表示任意字符。\ d d d为斜杠后 为斜杠后 面跟三位八进制数, 面跟三位八进制数 , 该三位八进制数的值即 为对应的八进制A 码值。 后面跟两 为对应的八进制 S C I I码值。\ x后面跟两 码值 位十六进制数, 位十六进制数 , 该两位十六进制数为对应字 符的十六进制A 码值。 符的十六进制 S C I I码值。例如 码值 例如'\012' (十 十 进 制 ASCII 码 为 10) 代 表 “ 换 行 ” , '\0' 或 '\000'代表 代表ASCII为0的控制字符,即“空操作 的控制字符, 代表 为 的控制字符 字符” 它将用在字符串中。 字符”,它将用在字符串中。
2.2.1 整型常量
C语言里面整型常量可以用十进制 、 八进制和十六进制 语言里面整型常量可以用十进制、 语言里面整型常量可以用十进制 三种形式表示。 三种形式表示。 1 、 十进制常量 : 由数字 十进制常量: 由数字1~9开头其余各位由 开头其余各位由0~9组成, 组成, 开头其余各位由 组成 各数字间不允许有空格符及其他字符。 各数字间不允许有空格符及其他字符 。 如 123,0等。 , 等 十进制里还有一种常量叫长整型常量, 个字节。 十进制里还有一种常量叫长整型常量,占4个字节。一 个字节 般在十进制常量后加上L( ) 就变成长整型常量。 般在十进制常量后加上 ( 或 l) 就变成长整型常量 。 如123L。 。 2、 八进制常量:以0开头,其它位由数字 ~7组成。如 开头, 组成。 、 八进制常量: 开头 其它位由数字0~ 组成 0123等。 等 3、 十六进制常量:以0x或0X开头,其它位由数字 ~9 开头, 、 十六进制常量: 或 开头 其它位由数字0~ 或 字 母 a ~ f ( 或 A~F, 大 小 写 意 思 相 同 ) 组 成 。 如 0x123a,0Xabc等。 , 等