第3章数据类型、运算符与表达式 3.1程序设计概述 3.2常量和变量 33整型数据 34实型数据 35字符型数据 3.6算术运算与算术表达式 3.7赋值运算与赋值表达式 38C语言特有的运算和运算符 Return
第3章 数据类型、运算符与表达式 3.1 程序设计概述 3.2 常量和变量 3.3 整型数据 3.4 实型数据 3.5 字符型数据 3.6 算术运算与算术表达式 3.7 赋值运算与赋值表达式 3.8 C语言特有的运算和运算符 [Return]
31程序设计概述 一个程序应包括对数据的描述和对数据处理的描述。 对数据的描述,即数据结构。数据结构是计算机学科的核心课程之一,有 许多专门著作论述,本课程就不再赘述。 在C语言中,系统提供的数据结构,是以数据类型的形式出现的。 整形 字符型 基本类型实型(浮点型)—单精度型、双精 度型 枚举类型 数据类型 数组类型 构造类型结构体类型 共用体类型 指针类型 空类型 Return
3.1 程序设计概述 一个程序应包括对数据的描述和对数据处理的描述。 对数据的描述,即数据结构。数据结构是计算机学科的核心课程之一,有 许多专门著作论述,本课程就不再赘述。 在C语言中,系统提供的数据结构,是以数据类型的形式出现的。 基本类型 数据类型 构造类型 指针类型 空类型 [Return] 整形 字符型 实型(浮点型)——单精度型、双精 度型 枚举类型 数组类型 结构体类型 共用体类型
32常量和变量 321常量 常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2常量的分类 #define price 30 (1)整型常量:12、0、-3 Main (2)实型常量:45、-1.456 Int num to (3)字符常量:‘a'、’g Num=10 Total=num * PRICE 常量的类型,可通过书写形式来判别9°ta) (4)符号常量:# define price30→P 322变量 1变量的概念 在程序运行过程中,其值可以被改变的量称为变量。 2变量的两个要素
3.2 常量和变量 3.2.1 常量 1.常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类 (1)整型常量:12、0、-3 (2)实型常量:4.5、-1.456 (3)字符常量:‘a’、’g’、’h’ (4)符号常量:#define PRICE 30 常量的类型,可通过书写形式来判别。 3.2.2 变量 1.变量的概念 在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 #define PRICE 30 Main ( ) {int num,total; Num=10; Total=num*PRICE; Print(“total=%d”,total); }
(1)变量名。每个变量都必须有一个名字——变量名。 2)变量值。变量值存储在内存的存储单元中。在程序中,通过 变量名来引用变量的值。 A 3标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以 字母或下划线开头 (2)有效长度:随系统而异,但至少前8个字符有效 如果超长,则超长部分被舍弃。 例如,由于 student name和 student number的前8个字符相 同,有的系统认为这两个变量,是一回事而不加区别。 在TCV2.0中,变量名(标识符)的有效长度为1~32 个字符,缺省值为32
(1)变量名。每个变量都必须有一个名字──变量名。 (2)变量值。变量值存储在内存的存储单元中。在程序中,通过 变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以 字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。 如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前8个字符相 同,有的系统认为这两个变量,是一回事而不加区别。 在TC V2.0中,变量名(标识符)的有效长度为1~32 个字符,缺省值为32。 A 10
(3)C语言的关键字不能用作变量名。 (4)C语言对英文字母的大小敏感,即同一字母的大小 写,被认为是两个不同的字符。习惯上,变量名和函数名中 的英文字母用小写,以增加可读性 思考题:在C语言中,变量名 total与变量名 TOTAL ToTaL、tOtA等是同一个变量吗? 粝识符命名的良好习惯一见名知意 所谓“见名知意”是指,通过变量名就知道变量值的含 义。通常应选择能表示数据含义的英文单词(或缩写)作变 量名,或汉语拼音字头作变量名。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年 龄)、 salary/gz(工资)
(3)C语言的关键字不能用作变量名。 (4)C语言对英文字母的大小敏感,即同一字母的大小 写,被认为是两个不同的字符。习惯上,变量名和函数名中 的英文字母用小写,以增加可读性。 思考题:在C语言中,变量名total与变量名TOTAL、 ToTaL、tOtAl等是同一个变量吗? 标识符命名的良好习惯──见名知意: 所谓“见名知意”是指,通过变量名就知道变量值的含 义。通常应选择能表示数据含义的英文单词(或缩写)作变 量名,或汉语拼音字头作变量名。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年 龄)、salary/gz(工资)
4变量的定义与初始化 在C语言中,要求对所有用到的变量,必须先定义、后使 用;且称在定义变量的同时进行赋初值的操作为变量初始化。 (1)变量定义的一般格式 数据类型变量名[,变量名2 例如, float radius, length,area; (2)变量初始化的一般格式 [存储类型]数据类型变量名[匚初值],变量名2[=初值 例如, float radius-2.5, length,area; int X=5 Return
4.变量的定义与初始化 在C语言中,要求对所有用到的变量,必须先定义、后使 用;且称在定义变量的同时进行赋初值的操作为变量初始化。 (1)变量定义的一般格式 数据类型 变量名[, 变量名2……]; 例如,float radius, length, area; (2)变量初始化的一般格式 [存储类型] 数据类型 变量名[=初值][, 变量名2[=初值 2]……]; 例如,float radius=2.5, length, area; int x; x=5; [Return]
33整型数据 331整型常量 1三种表示形式: 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以数字0+小写字母x开头)。例如 0x36。 332整型变量 1整形数据在内存中的存储形式:数值是以补码形式表示 的 正数→是其本身 负数→将该数的绝对值的二进制形式,按位取反再加1
3.3 整型数据 3.3.1 整型常量 1.三种表示形式: 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以数字0+小写字母x开头)。例如 0x36。 3.3.2 整型变量 1.整形数据在内存中的存储形式:数值是以补码形式表示 的。 正数是其本身 负数将该数的绝对值的二进制形式,按位取反再加1
2分类 根据占用内存字节数的不同,整型变量又分为4类 (1)基本整型(类型关键字为int)。 (2)短整型(类型关键字为 short[int]) (3)长整型(类型关键字为long[int]) (4)无符号整型。无符号型又分为无符号基本整型 ( unsigned[int])、无符号短整型( unsigned short)和无符 号长整型( unsigned long)三种,只能用来存储无符号整数。 3.占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。在16 位操作系统中,一般用2字节表示一个int型变量,且long型(4 字节)≥int型(2字节)≥ short型(2字节)。显然,不同类型 的整型变量,其值域不同
2.分类 根据占用内存字节数的不同,整型变量又分为4类: (1)基本整型(类型关键字为int)。 (2)短整型(类型关键字为short [int])。 (3)长整型(类型关键字为long [int])。 (4)无符号整型。无符号型又分为无符号基本整型 (unsigned [int])、无符号短整型(unsigned short)和无符 号长整型(unsigned long)三种,只能用来存储无符号整数。 3.占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。在16 位操作系统中,一般用2字节表示一个int型变量,且long型(4 字节)≥int型(2字节)≥short型(2字节)。显然,不同类型 的整型变量,其值域不同
类型 其值范围 赋给的变量 Int 32768~+32767 Intlong int Long int 2147483648~+2147483647 Long int 如:12345L、OL Short]int 32768~+32767 Int shot int Unsigned int 以补码形式存储如:1234u 4.类型匹配规则 类型匹配规则为:一个整型常量,可以赋给能容纳下其值 的整型变量 例如:其值在-215--(215-1)的整型常量,可以赋给int 型变量和 long int型变量;其值在-231—(231-1)的整 型常量,就只能赋给 long int型变量。 注意:常量无 unsigned型。但一个非负整型常量,只要它 的值不超过相应变量的值域(即取值范围),也可以赋给 unsigned型变量
4.类型匹配规则 类型匹配规则为:一个整型常量,可以赋给能容纳下其值 的整型变量。 例如:其值在-215--(215-1)的整型常量,可以赋给int 型变量和long int型变量;其值在-231——(231-1)的整 型常量,就只能赋给long int型变量。 注意:常量无unsigned型。但一个非负整型常量,只要它 的值不超过相应变量的值域(即取值范围),也可以赋给 unsigned型变量。 类型 其值范围 赋给的变量 Int -32768~+32767 Int,long int Long int -2147483648~+2147483647 如:12345L、0L Long int [Short] int -32768~+32767 Int,shot int Unsigned int 以补码形式存储 如:1234u
5不同种类的整形数据可以进行算术运算。 Maino fint a, b, c, d 运行结果:a+u=32b+u-14 Unsigned u: A=12;b=-24;u=10 C=a+: d=b+u Printf(a+u=%d, b Hu=%dn”,c,d) 6.整形数据的溢出: Maino lint a, b a=32767; b=a+1 运行结果:3276732768 printf(“%d,%d”,a,b) Return
5.不同种类的整形数据可以进行算术运算。 例:Main( ) {int a,b,c,d; Unsigned u; A=12;b=-24;u=10; C=a+u;d=b+u; Printf(“a+u=%d,b+u=%d\n”,c,d); } 6.整形数据的溢出: Main( ) {int a,b; a=32767; b=a+1; printf(“%d,%d”,a,b); } [Return] 运行结果:a+u=32,b+u=-14 运行结果:32767,-32768