![第二章+基本数据类型、运算符与表达式 (1)_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/5/80d00093-612d-4ab3-a771-e6dafcbcea60/80d00093-612d-4ab3-a771-e6dafcbcea601.gif)
![第二章+基本数据类型、运算符与表达式 (1)_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/5/80d00093-612d-4ab3-a771-e6dafcbcea60/80d00093-612d-4ab3-a771-e6dafcbcea602.gif)
![第二章+基本数据类型、运算符与表达式 (1)_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/5/80d00093-612d-4ab3-a771-e6dafcbcea60/80d00093-612d-4ab3-a771-e6dafcbcea603.gif)
![第二章+基本数据类型、运算符与表达式 (1)_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/5/80d00093-612d-4ab3-a771-e6dafcbcea60/80d00093-612d-4ab3-a771-e6dafcbcea604.gif)
![第二章+基本数据类型、运算符与表达式 (1)_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/5/80d00093-612d-4ab3-a771-e6dafcbcea60/80d00093-612d-4ab3-a771-e6dafcbcea605.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C C C语言程序设计语言程序设计第第2 2章章 基本数据类型、运算符与表达式基本数据类型、运算符与表达式Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2问题:人类的语言书写时,不同国家有不同的要求,基本问题:人类的语言书写时,不同国家有不同的要求,基本的如:的如: 有哪些数据是规定可用的,可进行什么样的有哪些数据是规定可
2、用的,可进行什么样的运算和加工?运算和加工?用字要求用字要求格式要求格式要求标点要求标点要求 C C语言作为一种计算机语言,在用于编程语言作为一种计算机语言,在用于编程时,时,C C语言中对数据的类型,哪些操作运算是语言中对数据的类型,哪些操作运算是合法的,都进行了相关的规范和要求。合法的,都进行了相关的规范和要求。引子引子Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C 本章要点本章要点第第2 2章章 数据类型、运算符和表达式数据类型、运算符和表达式 本章难点本章难点n C C语
3、言的基本数据类型语言的基本数据类型n 变量的定义、赋值、初始化及使用方法变量的定义、赋值、初始化及使用方法n 基本运算符的运算规则及优先级别基本运算符的运算规则及优先级别n 表达式的构成规则和计算表达式的构成规则和计算n 数据类型转换的意义和实质数据类型转换的意义和实质Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.12.22.32.42.5C语言的数据类型语言的数据类型常量与变量常量与变量整型数据整型数据实型数据实型数据字符型数据字符型数据本章主要内容本章主要内容Copyri
4、ght Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.62.72.82.92.10算术运算符与算术表达式算术运算符与算术表达式赋值运算符与赋值表达式赋值运算符与赋值表达式逗号运算符与逗号表达式逗号运算符与逗号表达式位运算符位运算符数据类型转换与计算类型长度运算符数据类型转换与计算类型长度运算符本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C6数据类型总表数据类
5、型总表数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void字符类型字符类型char枚举类型枚举类型整整 型型实实 型型单精度型单精度型float双精度型双精度型double数组数组结构体结构体struct共用体共用体union短整型短整型short长整型长整型long整型整型int数据类型决定:数据类型决定:1. 数据占内存字节数数据占内存字节数2. 数据取值范围数据取值范围2.1 C2.1 C语言的数据类型语言的数据类型不可再将其分解成其他类型构造类型数据可以分解成若干个成员或元素 ,各成员的类型可以相同,也可以不同,可以是基本数据类型,也可以是构造类型。值用
6、来表示某个量在内存储器中的地址函数类型说明了返回值的类型,但有些函数没有返回值,这种函数类型定义为空类型(void)。Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.12.22.32.42.5C语言的数据类型语言的数据类型常量与变量常量与变量整型数据整型数据实型数据实型数据字符型数据字符型数据本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C8
7、常量常量定义:程序运行时其值不能改变的量(即常数)定义:程序运行时其值不能改变的量(即常数)分类分类: :字面常量字面常量: :又称直接常量又称直接常量整型常量整型常量 : 1212、0 0、3 3; 实型常量实型常量 : 4.64.6、1.23 1.23 字符常量字符常量 :a、b符号常量符号常量: :Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C9标识符标识符定义:标识符是用户自定义的一种字符序列,用于表示程序中需要定义:标识符是用户自定义的一种字符序列,用于表示程序中需要辨
8、认的对象,比如变量、数组、函数等对象的名字。辨认的对象,比如变量、数组、函数等对象的名字。分类:分类:关键字、关键字、预定义标识符预定义标识符和和用户标识符用户标识符 命名原则命名原则:由由字母字母、数字数字、下划线下划线组成组成的一串符号的一串符号,但必修以英文但必修以英文字母或字母或下划线下划线开头开头标识符区分大小写标识符区分大小写不能使用关键字不能使用关键字作为用户标识符作为用户标识符见名知意见名知意建议用户标识符不要与预定义标识符相同建议用户标识符不要与预定义标识符相同 不宜混淆不宜混淆 如如l l与与I, oI, o与与0 0长度:长度:VC 6.0VC 6.0为为255255个字
9、符个字符例例: :判断下列标识符号合法性判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123ab2.2 2.2 常量与变量常量与变量由由C语言规定的具有语言规定的具有特定含义的标识符,特定含义的标识符,也称为保留字也称为保留字关键字均关键字均为小写,为小写,如如int、while预定义标识符在C语言中有特定的含义,如printf、include Copyright Henan Polytechnic Universit
10、y 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C10符号常量符号常量也称宏常量也称宏常量定义:用一个标识符代表一个常量。定义:用一个标识符代表一个常量。由由C C语言中的宏定义预处理命令来定义。语言中的宏定义预处理命令来定义。定义格式:定义格式:#define 符号常量符号常量 常量常量标识符标识符符号常量应遵循标识符的命名规则符号常量应遵循标识符的命名规则 习惯上用大写字母习惯上用大写字母常量可以是任何类型常量可以是任何类型符号常量一经定义,凡在源程序中使用该符号常量时,符号常量一经定义,凡在源程序中使用该符号常量时,都用其后指定的常量来替换。都用其后
11、指定的常量来替换。 例例2.12.1符号常量的使用符号常量的使用#include #define PI 3.14159#define R 5.3main() printf(area=%fn,PI*R*R); /* 输出圆面积输出圆面积 */ printf(circumference=%fn,2*PI*R); /* 输出圆周长输出圆周长 */运行结果:运行结果:area=88.247263circumference=33.300854如如 #define PRICE 30修改程序方便阅读程序方便 Copyright Henan Polytechnic University 语语言言第第 2 2
12、章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C11变量变量功能:功能:用来保存程序运行过程中的输入数据、计算用来保存程序运行过程中的输入数据、计算获得的中间结果和最终结果。获得的中间结果和最终结果。变量定义的一般格式:变量定义的一般格式: 类型标识符类型标识符 变量名变量名1,1,变量名变量名2,2,; ; 变量初始化变量初始化: :定义时赋初值定义时赋初值 变量的使用:变量的使用:先定义,后使用先定义,后使用例例: int a,b,c; float data;类型标识符类型标识符 变量名变量名=初值初值;例例: int a=2,b,c=4; float data=3.67;
13、char ch=A; int x=1,y=1,z=1; int x=y=z=1;决定分配字节数和数的表示范围例例: int student; stadent=19; /Undefined symbol statent in function main Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C12int a=1, b=-3,c;.地址abc4字节4字节4字节字节地址地址.-3随机数1编译程序根据变量定义为其分配指定字节的内存单元变量名变量名与与变量值变量值Copyright
14、Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C13main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义位置:变量定义位置:变量定义语句可放在函数外,也可放在函变量定义语句可放在函数外,也可放在函数或复合语句内。数或复合语句内。Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.12.
15、22.32.42.5C语言的数据类型语言的数据类型常量与变量常量与变量整型数据整型数据实型数据实型数据字符型数据字符型数据本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C15三种形式:三种形式:十进制整数:由数字十进制整数:由数字0909和正负号表示和正负号表示.(.(与日常使用的整数与日常使用的整数写法一样写法一样) ) 如如: 0,-143,87: 0,-143,87八进制整数:由数字八进制整数:由数字0 0开头开头, ,后面是八进制数字序列后面是八进制
16、数字序列, , 数字数字取值范围为取值范围为0 0 7 7。 如如:00:00、015015、037037十六进制整数:十六进制整数:以以0 x0 x或或0X0X开头的十六进制数字序列开头的十六进制数字序列, ,数字取数字取值范围为值范围为0909、a a f f或或A A F F。 如如:0 x0:0 x0、-0 xABC-0 xABC、0X9fc0X9fc 2.3 2.3 整型数据整型数据整型常量(整数)整型常量(整数)是数字是数字0 ,不是字母不是字母o 非法的八进制数 : 0539、02A、0567 非法的十六进制数 :0 xfg、0 x-89F Copyright Henan Pol
17、ytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C16&整型变量的分类整型变量的分类根据表达范围:根据表达范围:基本整型基本整型(int)、 短整型(短整型(short int) 长整型(长整型(long int)标准标准C C语言规定:语言规定:short intintlong intshort intintlong int根据是否有符号:根据是否有符号:有符号型(有符号型(signed)和无符号型()和无符号型(unsigned) 若未指定是否有符号,则隐含为有符号型(若未指定是否有符号,则隐含为有符号型(s
18、igned) 2.3 2.3 整型数据整型数据整型变量整型变量用来存放整数,基本类型为int型 如:int型数据是有符号,而unsigned int是无符号的。 Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C17VC 6.0VC 6.0中整型变量的所占字节数和数值范围中整型变量的所占字节数和数值范围整型类型符整型类型符占用占用字节字节数数数数 值值 范范 围围signed int421474836482147483647 即即231(2311)signed short int23
19、276832767 即即215(2151)signed long int421474836482147483647 即即231(2311)unsigned int404294967295 即即0(2321)unsigned short int2065535 即即0(2161)unsigned long int404294967295 即即0(2321)Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C18&整型变量的定义整型变量的定义在定义整型变量时,某些类型修饰符可以省略在
20、定义整型变量时,某些类型修饰符可以省略int a,b,c; /* a,b,c为有符号整型变量为有符号整型变量 */ long x,y; /* x,y为有符号长整型变量为有符号长整型变量 */ unsigned p, q; /* p,q为无符号整型变量为无符号整型变量 */在存储正数时,在存储正数时,无符号整型变量无符号整型变量的数值范围比的数值范围比有符有符号整型变量号整型变量的数值范围扩大一倍,的数值范围扩大一倍,如果能事先确定存储的数是正整数(如年龄、库存如果能事先确定存储的数是正整数(如年龄、库存量、人数等),则可将变量定义为无符号类型,以量、人数等),则可将变量定义为无符号类型,以充分
21、利用变量的数值范围。充分利用变量的数值范围。Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C19&整型数据在内存中的存放形式整型数据在内存中的存放形式在内存中数据是以二进制形式存放的在内存中数据是以二进制形式存放的有符号整型数有符号整型数无符号整型数无符号整型数0111111111111111signed short(最大值)(最大值)unsigned short(最大值)(最大值)1111111111111111符号位 0123456789101112131415Copy
22、right Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C20实际上,整型数据是以补码的形式来存储的。 正数的补码正数的补码 负数的补码负数的补码 原码相同原码相同 将原码的符号位保持不变,将原码的符号位保持不变,数值位逐位取反(变为反码)数值位逐位取反(变为反码)末位(即最右边的那一位)加末位(即最右边的那一位)加1求:求:10的补码的补码 (1)写出写出10的原码的原码(2)数值位取反,得数值位取反,得10的反码的反码 (3)末位加末位加1,得,得10的补码的补码1000000000001010
23、11111111111101011111111111110110Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C21&整型数据的溢出整型数据的溢出short intshort int型变量的最大允许值为型变量的最大允许值为3276732767,如果,如果再加再加1 1,会出现什么情况?,会出现什么情况? 例2.2 整型数据的溢出。#include main() short a,b; a=32767; b=a+1; printf(%d,%d,a,b);a和和b的存储格式:的存
24、储格式:a 0111111111111111b 1000000000000000运行结果为:运行结果为:32767, -32768Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C22整型常量的类型整型常量的类型整型常量也有基本整型、长整型、有符整型常量也有基本整型、长整型、有符号和无符号之分号和无符号之分 编译程序会根据编译程序会根据数值大小分辨数值大小分辨出常量是出常量是int还是还是long int类型。类型。 int型和型和long型数据均占型数据均占4个字节,在个字节,在2
25、1474836482147483647范围内的常量认为是范围内的常量认为是int型。型。需要明确地指出整数是否属于需要明确地指出整数是否属于long int类型,类型,要在整数的末尾要加上字母要在整数的末尾要加上字母L或或l。 在表示无符号整型常量时,需要在数值后添加字在表示无符号整型常量时,需要在数值后添加字母母U或或u作为后缀作为后缀,若是长整型无符号整型常量,若是长整型无符号整型常量,则可以加后缀则可以加后缀LU或或lu, 无论是基本整型数还是长整型数,都被识别为无论是基本整型数还是长整型数,都被识别为有符号整数有符号整数有符号整数有符号整数无符号整型常量无符号整型常量例:148、013
26、、148L、0 x38Alu 、013L、 0 x38Au 、0 x16L、358U、0 x16、358LU148、013、0 x16148L013L0 x16L0 x38Au358U0 x38Alu358LUCopyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.12.22.32.42.5C语言的数据类型语言的数据类型常量与变量常量与变量整型数据整型数据实型数据实型数据字符型数据字符型数据本章主要内容本章主要内容Copyright Henan Polytechnic Universi
27、ty 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C24表示形式:表示形式:小数形式:小数形式:数学中常用的实数形式,由数字数学中常用的实数形式,由数字09和小数和小数点组成。点组成。 (必须有小数点必须有小数点) 如:如:0.0、25.0、5.789、0.13、5.0、300.、267.8230 指数形式:指数形式:也称为科学记数法,由尾数(可带符号)、也称为科学记数法,由尾数(可带符号)、阶码标志阶码标志“e”或或“E”以及阶码(只能为整数,可以带符以及阶码(只能为整数,可以带符号)组成。(号)组成。(字母字母e或或E的前后及数字之间不能插入空格的前后
28、及数字之间不能插入空格 ) 例如:例如:2.1E5(等于(等于2.1105),),3.7E-2(等于(等于3.7102),),0.5E7(等于(等于0.5107),),2.8E-2(等于(等于2.8102) 2.4 2.4 实型数据实型数据实型常量(浮点型常量、实数或浮点数)实型常量(浮点型常量、实数或浮点数)345E7553.-E32.7E无小数点 阶码标志E之前无数字无阶码标志负号位置不对 无阶码Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C25floatfloat(单精度单
29、精度):):占占3232位位,提供,提供7 7位有效数字位有效数字doubledouble(双精度):(双精度):占占6464位位,提供,提供1616位有效数字位有效数字longlong doubledouble(长双精度型):(长双精度型):占占6464位位,提供,提供1616位有效位有效数字数字 2.4 2.4 实型数据实型数据实型变量(浮点变量实型变量(浮点变量 )float a=1.5,b=0.35,c; /* 定义单精度实型变量a、b、c,并对a、b初始化 */double x,y,z; /* 定义双精度实型变量x、y、z */Copyright Henan Polytechnic
30、University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C26实型数据在内存中的存放形式实型数据在内存中的存放形式 无论表示形式是小数还是指数,均以指数格式存储无论表示形式是小数还是指数,均以指数格式存储 实数的存储由符号位、指数(阶码)以及尾数(小数)等三实数的存储由符号位、指数(阶码)以及尾数(小数)等三部分组成。部分组成。 例如:实数例如:实数31.4159 指数指数尾数尾数+2314159符号位float:共占32位。1位符号位、8位指数和23位尾数;double:占64位。1位符号位、11位指数和52位尾数。指数部分占的位数多,则表示的
31、数值范围大。尾数部分占的位数多,实型数据的有效数字就多,精度就高。Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C27实型变量的舍入误差实型变量的舍入误差由于实型变量是用有限的存储单元存储的,因此提供的有效由于实型变量是用有限的存储单元存储的,因此提供的有效数字是有限的,往往会产生误差。数字是有限的,往往会产生误差。 在十进制小数转换成二进制时,如果小数最后一位不是5,则转换的二进制小数往往是无限位,此时产生舍入误差 一个很大的数和一个很小的数直接进行加或减时,可能会“丢失”小的数
32、。例2.3 实型变量的舍入误差。#include main() float a,b; a=123456.72e5; b=a+20; printf(a=%fn,a); printf(b=%fn,b);本例程序运行的结果是:a=12345671680.000000b=12345671680.000000Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C28例 4.5E1F、-4.5E-2F实型常量的类型实型常量的类型默认默认doubledouble型型在在实型常量后加字母实型常量后加字母
33、f f或或F F,认为它是认为它是float float 型型Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.12.22.32.42.5C语言的数据类型语言的数据类型常量与变量常量与变量整型数据整型数据实型数据实型数据字符型数据字符型数据本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C Caaa30定义定义: :用用单引号(单引号()括起来的括起
34、来的一个字符一个字符。 2.5 2.5 字符型数据字符型数据字符型常量字符型常量如 a b = + ?存储:字符常量占用一个字节,具体存放的是存储:字符常量占用一个字节,具体存放的是该字符对应的该字符对应的ASCIIASCII代码值代码值。如 A A6565, a a9797, 0 048 , 48 , 1 14949可以进行运算可以进行运算例如:例如:a+5a+5、AA5 5、1+101+1010210260605959Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C31&
35、;字符常量的特点字符常量的特点 :字符常量只能用字符常量只能用单引号单引号括起来,不能用双引号或括起来,不能用双引号或其他括号其他括号abc是非法的是非法的字符常量只能是字符常量只能是单个字符单个字符C C语言规定,字母是区分大小写的,所以语言规定,字母是区分大小写的,所以aa和和AA是不同的字符常量是不同的字符常量Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C32转义字符转义字符一种特殊形式的字符常量一种特殊形式的字符常量转义字符转义字符某些控制字符(如某些控制字符(如回车符、
36、换行符回车符、换行符等)和一些等)和一些ASCII字符却字符却无法使用字符常量进行表示无法使用字符常量进行表示转义字符以反斜线转义字符以反斜线“”开头,后跟开头,后跟一个或几个一个或几个字符。字符。转义字符及其含义:转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号13位8进制数代表的字符水平制表退格换页反斜线双引号12位16进制数代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65Copyright Henan Polytechnic University 语语言言第第 2 2
37、 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C33定义:用双引号定义:用双引号( (“”) )括起来的字符序列括起来的字符序列 字符串常量字符串常量CHINA,C program,12365478 转义字符也可以出现在字符串转义字符也可以出现在字符串ABCD、101102x43x44字符常量与字符串常量字符常量与字符串常量的区别的区别字符常量由单引号括起来,字符串常量由双字符常量由单引号括起来,字符串常量由双引号括起来引号括起来字符常量只能是单个字符,字符串常量可以字符常量只能是单个字符,字符串常量可以为空字符串,也可以含为空字符串,也可以含1 1个或多个字符个或多个字符可以
38、把一个字符常量赋予一个字符变量,可以把一个字符常量赋予一个字符变量,语言中没有字符串变量,不能把一个字符串语言中没有字符串变量,不能把一个字符串常量赋予一个字符串变量。但可以用一个字常量赋予一个字符串变量。但可以用一个字符数组来存放一个字符串常量符数组来存放一个字符串常量字符常量占字符常量占1 1个字节的内存空间。字符串常个字节的内存空间。字符串常量占的量占的内存字节数内存字节数等于等于字符串中字符数字符串中字符数加加1 1,增加的一个字节由系统自动存入字符增加的一个字节由系统自动存入字符00(ASCIIASCII码为码为0 0),作为字符串结束的标志。),作为字符串结束的标志。Copyrig
39、ht Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C34h e l l o 0例例 字符串字符串“hellohello”在内存中在内存中例例 空串空串 “”“”0a a a a 00例例 a a“a”例: char ch; ch=“A”; 例: char ch; ch=A; Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C35例例 转义字符举例转义字符举例 main() printf(1
40、01 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);例例 main() printf(“&b=n”); 运行结果:运行结果:( (屏幕显示屏幕显示) )A B CIsay:”How are you?”C ProgramTurbo C运行结果:运行结果:屏幕显示:屏幕显示:=Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C36&字符变量字符变量用于存放单个字符常量,使
41、用用于存放单个字符常量,使用charchar来定义。来定义。字符变量在内存中占字符变量在内存中占一个一个字节字节例例2.4 字符变量的值。字符变量的值。#include main() char a=0 x1261,b; b=a-32; printf(%c,%cn%d,%dn ,a,b,a,b);没有没有字符串变量字符串变量,用字符数组存放,用字符数组存放字符型变量字符型变量char c1=x,c2=y,c3;char optr;字符型数据和整型数据之间可以通用。字符型数据和整型数据之间可以通用。程序运行的结果为: a,A 97,65当整型变量按字符变量处理时,只有当整型变量按字符变量处理时,只
42、有低八位参与处理。低八位参与处理。Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.62.72.82.92.10算术运算符与算术表达式算术运算符与算术表达式赋值运算符与赋值表达式赋值运算符与赋值表达式逗号运算符与逗号表达式逗号运算符与逗号表达式位运算符位运算符数据类型转换与计算类型长度运算符数据类型转换与计算类型长度运算符本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算
43、符符及及表表达达式式C C38学习运算符应注意:学习运算符应注意:运算符功能运算符功能与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型运算符优先级别运算符优先级别结合方向结合方向结果的类型结果的类型 2.6 2.6 算术运算符和算术表达式算术运算符和算术表达式Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C39基本算术运算符基本算术运算符基本算术运算符:基本算术运算符: + - * / %说明:说明:双目运算符两边的运算对象的类型不一致,使运算双目运
44、算符两边的运算对象的类型不一致,使运算符两边的类型达到一致后,再进行运算。符两边的类型达到一致后,再进行运算。除运算的结果与运算对象的数据类型有关除运算的结果与运算对象的数据类型有关,两整数,两整数相除,结果为整数相除,结果为整数% %要求两侧均为整型数据要求两侧均为整型数据C C语言中,所有实型数的运算均以双精度方式进行。语言中,所有实型数的运算均以双精度方式进行。若是单精度,则在尾数部分补若是单精度,则在尾数部分补0 0,使之转化为双精度,使之转化为双精度数。数。正负号运算符为正负号运算符为+ +(正号)和(正号)和(负号)。它们为单(负号)。它们为单目运算符,必须出现在运算对象的左边,运
45、算对象目运算符,必须出现在运算对象的左边,运算对象可以是整型,也可以是实型可以是整型,也可以是实型例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()运算结果是两数相除后所得的余数,结果的符号与编译系统有关。在Turbo C和VC中,所得结果的符号与被除数相同。 Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式
46、式C C40算术表达式及算术运算符的优先级和结合性算术表达式及算术运算符的优先级和结合性算术算术表达式表达式:用算术运算符将运算对象连接起来的表用算术运算符将运算对象连接起来的表达式称为算术表达式。达式称为算术表达式。算术表达式运算规则和要求:算术表达式运算规则和要求:可使用可使用多层圆括号多层圆括号,但左右,但左右括号必须配对括号必须配对,运算,运算时时从内层圆括号从内层圆括号开始,由内向外依次计算表达式开始,由内向外依次计算表达式的值。的值。按运算符的优先级别由高到低进行,若表达式中运按运算符的优先级别由高到低进行,若表达式中运算符的级别相同,则按运算符的结合方向进行。算符的级别相同,则按
47、运算符的结合方向进行。Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C41基本算术运算符基本算术运算符对对 象象 数数优优 先先 级级名名 称称运运 算算 符符运运 算算 规规 则则运运 算算 对对 象象结结 合合 性性单单目目1正正+取原值取原值整型或实型整型或实型自右自右向左向左负负-取负值取负值双双目目2乘乘*乘法乘法整型或实型整型或实型自左自左向右向右除除/除法除法模模%整除取余整除取余整型整型3加加+加法加法整型或实型整型或实型减减-减法减法Copyright Henan
48、 Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C42自增、自减运算符自增、自减运算符+ -+ -作用:使变量值加作用:使变量值加1 1或减或减1 1种类:种类:前置前置 +i, -i (+i, -i (先执行先执行i i+1+1或或i-1i-1,再使用再使用i i值)值)后置后置 i+,i- (i+,i- (先使用先使用i i值值, ,再执行再执行i i+1+1或或i-1i-1)例例2.5 自增、自减运算符的使用。自增、自减运算符的使用。#include main() int i=5,x; x=i+; prin
49、tf(i=%d,x=%dn,i,x); printf(%dt,+i); printf(%dt,-i); printf(%dt,i-); printf(%dt,-i+); printf(%dn,-i-);程序运行结果如下:i=6,x=57 6 6 -5 -6使用自增、自减运算符时应注意使用自增、自减运算符时应注意:运算对象运算对象不能是常量和表达式不能是常量和表达式当出现难以区分的若干个当出现难以区分的若干个+ +或或- -组成运算符串时,组成运算符串时,自自左向右左向右取尽可能多的符号组成运算符。取尽可能多的符号组成运算符。不要在一个表达式中对同一个变量进行多次诸如不要在一个表达式中对同一个变
50、量进行多次诸如i+i+或或+i+i等运算等运算例如写成:例如写成:i+i+* *+i+i-+i+i-* *-i-i如i+j应理解为(i+)+j,而不是i+(+j)。Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.62.72.82.92.10算术运算符与算术表达式算术运算符与算术表达式赋值运算符与赋值表达式赋值运算符与赋值表达式逗号运算符与逗号表达式逗号运算符与逗号表达式位运算符位运算符数据类型转换与计算类型长度运算符数据类型转换与计算类型长度运算符本章主要内容本章主要内容Cop
51、yright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C44简单赋值运算符简单赋值运算符符号:符号: = =格式:格式: 变量变量= =表达式表达式作用:将一个数据(常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符复合赋值运算符种类种类:+= -= += -= * *= /= %= /= %= = = = &= = |= &= = |=含义:含义: exp1 op= exp2exp1 op= exp2 exp1 = exp1 op exp2ex
52、p1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例例 a=3;a=3; d=func(); d=func(); c=d+2; c=d+2; 2.7 2.7 赋值运算符和赋值表达式赋值运算符和赋值表达式Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C45说明说明: :结合方向:结合方向:自右向左自右向左优先级优先级: :只高于逗号运算符,比任何其他运算符的优先级都低只高于逗号运算符,比任何其他运算符的优先级都低左侧必须是变量,不能是
53、常量或表达式左侧必须是变量,不能是常量或表达式赋值转换赋值转换规则规则: :使赋值号右边表达式值使赋值号右边表达式值自动自动转换成其左边变量的转换成其左边变量的类型类型例例 3=x-23=x-2* *y;y; a+b=3; a+b=3;例例 float f; int i; i=10; f=i;则则 f=10.0例例 int i; i=2.56; /结果结果i=2;例例: a=b=c=5: a=b=c=5 a=(b=5) a=(b=5) a=5+(c=6) a=5+(c=6) a=(b=4)+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) a=(b=10)/(c=2)/表达
54、式值为表达式值为5 5,a,b,ca,b,c值为值为5 5/ b=5;a=5/ b=5;a=5/表达式值表达式值1111,c=6,a=11c=6,a=11/表达式值表达式值1010,a=10,b=4,c=6a=10,b=4,c=6/表达式值表达式值5 5,a=5,b=10,c=2a=5,b=10,c=2Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C46说明说明: :结合方向:结合方向:自右向左自右向左左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式赋值表达式的
55、值与变量值相等赋值表达式的值与变量值相等, ,且可嵌套且可嵌套赋值转换赋值转换规则规则: :使赋值号右边表达式值使赋值号右边表达式值自动自动转换成其转换成其左边变量的类型左边变量的类型例例: : a=12; a=12; a+=a-=a a+=a-=a* *a a例例:int a=2; :int a=2; a%=4-1; a%=4-1; a+=a a+=a* *=a-=a=a-=a* *=3; =3; /a=-264 /a=-264 等价于等价于a=a+(a=a-(aa=a+(a=a-(a* *a)a)/a=0 /a=0 等价于等价于a=a+(a=aa=a+(a=a* *(a=a-(a=a(a=
56、a-(a=a* *3)3)Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.62.72.82.92.10算术运算符与算术表达式算术运算符与算术表达式赋值运算符与赋值表达式赋值运算符与赋值表达式逗号运算符与逗号表达式逗号运算符与逗号表达式位运算符位运算符数据类型转换与计算类型长度运算符数据类型转换与计算类型长度运算符本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及
57、表表达达式式C C48形式:形式:表达式表达式1 1, ,表达式表达式2 2, ,表达式表达式n n结合性结合性: :从左向右从左向右优先级优先级: :在所有运算符中是最低的在所有运算符中是最低的逗号表达式逗号表达式的值:等于表达式的值:等于表达式n n的值的值用途:用途:常用于循环常用于循环forfor语句中语句中例例 a=3*5,a*4 a=3*5,a*4,a+5例例 x=(a=3,6*3) x=a=3,6*a例例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表达式值表达式值60/
58、a=15,表达式值表达式值20/赋值表达式,表达式值赋值表达式,表达式值18,x=18/逗号表达式逗号表达式,表达式值表达式值18,x=3/1,2,3/3,2,3 2.8 2.8 逗号运算符和逗号表达式逗号运算符和逗号表达式例例2.6 逗号运算符。逗号运算符。#include main() int x,a; x=(a=3,6*3); printf(a=%d,x=%dn,a,x); x=a=3,6*a; printf(a=%d,x=%dn,a,x);程序运行的结果应为:程序运行的结果应为:a=3,x=18a=3,x=3Copyright Henan Polytechnic University
59、语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C2.62.72.82.92.10算术运算符与算术表达式算术运算符与算术表达式赋值运算符与赋值表达式赋值运算符与赋值表达式逗号运算符与逗号表达式逗号运算符与逗号表达式位运算符位运算符数据类型转换与计算类型长度运算符数据类型转换与计算类型长度运算符本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 2 2 章章基基本本数数据据类类型型运运算算符符及及表表达达式式C C50位运算符位运算符种类种类: & | & |位运算:对运算对象按二进
60、制位进行操作。位运算:对运算对象按二进制位进行操作。位运算对象:只能是整型或字符型数据,不能是其位运算对象:只能是整型或字符型数据,不能是其他类型的数据,其运算结果仍是整型或字符型数据他类型的数据,其运算结果仍是整型或字符型数据:运算对象在运算符的右边:运算对象在运算符的右边功能:对运算对象的各二进位按位求反,功能:对运算对象的各二进位按位求反,即使每一位上的即使每一位上的0 0变变1 1;变;变1 1为为0 0。例例 9 9:运算结果为:运算结果为-10-10 9 9的二进制表示:的二进制表示:00000000000010010000000000001001 按位求反后为:按位求反后为:11111111111101101111111111110110即:即:-10-10:左移:左移例如:例如:char a=19,b;char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天翼云高级运维工程师认证参考试题库(含答案)
- “非物质文化遗产”知识竞赛参考试题库300题(含答案)
- 2025年武汉城市职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 合同外包项目服务协议
- 销售产品电子合同
- 氢能源行业的投资机会分析
- 社工劳动合同范本
- 标准正式个人借款合同
- 上海二手房屋买卖房屋合同
- 房地产开发合同
- 2025年中国南方航空股份有限公司招聘笔试参考题库含答案解析
- 商务部发布《中国再生资源回收行业发展报告(2024)》
- 2025年福建新华发行(集团)限责任公司校园招聘高频重点提升(共500题)附带答案详解
- 江苏省驾校考试科目一考试题库
- 四川省成都市青羊区成都市石室联合中学2023-2024学年七上期末数学试题(解析版)
- 咨询公司绩效工资分配实施方案
- 2025新人教版英语七年级下单词表
- 中华护理学会团体标准-气管切开非机械通气患者气道护理
- 未成年入职免责协议书
- 光伏电站巡检专项方案
- 2024年山东省东营市中考数学试题 (原卷版)
评论
0/150
提交评论