270 likes | 542 Views
C 语言程序设计. 主讲:沈济南. TEL: 13971887071 E-mail: shenjinan@163.com. 第 2 讲. 主讲内容: 第二章 数据类型 & 常量变量 2.1 基本数据类型 2.2 常量与变量. 2.1 基本数据类型. 基本数据类型分为整数类型、实数类型(浮点型)、字符类型和枚举类型。 基本数据类型最主要的特点是,其值不可以再分为其他类型。 在 C 语言程序设计中,基本数据类型是自我说明的。. 2.1 基本数据类型. 2.1.1 整型数据
E N D
C语言程序设计 主讲:沈济南 TEL:13971887071 E-mail:shenjinan@163.com
第2讲 • 主讲内容: • 第二章 数据类型&常量变量 2.1 基本数据类型 2.2 常量与变量
2.1 基本数据类型 • 基本数据类型分为整数类型、实数类型(浮点型)、字符类型和枚举类型。 • 基本数据类型最主要的特点是,其值不可以再分为其他类型。 • 在C语言程序设计中,基本数据类型是自我说明的。
2.1 基本数据类型 • 2.1.1 整型数据 整型数据即为不带小数部分的数值型数据。整型数据分为短整型、基本整型、长整型和无符号整型四种。 • C标准没有具体规定各类整型数据所占字节数,但要求长整型数据长度不短于基本整型,基本整型不短于短整型。因此,对各类整型数据的长度如何处理,则由具体的计算机系统决定,在使用C语言时应引起注意。
C语言中,整型数据一般可用以下三种形式表示:C语言中,整型数据一般可用以下三种形式表示: (1)用十进制表示整型数 这与日常表示相同,例如:128,97, -97,0等。 (2)用八进制表示整型数 书写时以数字0开头,例如:053即为八进制数(53)8 ,0231即为八进制数(231)8 。
(3)用十六进制表示整型数 书写时以0x开头(注意:x前面是数字 0),例如:0x53即为十六进制数(53)16 ,0x231即为十六进制数(231)16 ,0x2F3D即为十六进制数(2F3D)16。 • 如果在一个整型数据后面加上字符“L”或“l”,则认为是长整型(long int)数据。如:128L、0L等,意味着它们是以32位存储。
2.1 基本数据类型 • 2.1.2 实型数据 实型数据又称为浮点型数据。Turbo C的实型数据分为单精度实型(float型)和双精度实型(double型)两种 。
在C语言中,实型数据有两种表示形式:十进制小数形式和指数形式。在C语言中,实型数据有两种表示形式:十进制小数形式和指数形式。 (1)十进制小数形式表示 它由数字和小数点组成。如 .32、198.、9.8、0.778等都是十进制小数形式。 (2)指数形式表示 它由数符、十进制数、阶码标志“E”或“e”以及阶符和阶码组成。如139.786E3或139.786e3,其对应的数学表示为139.786×103。
这种表示的一般形式如下: • 需要注意的是:字母E(或e)之前必须有数字,阶码只能为整数。 如E3、.E3、E、4.0E-2.8等都是不合法的指数表示形式。 [±] 尾数E [±] 阶码 [±] 尾数e [±] 阶码 或
2.1 基本数据类型 • 2.1.3 字符型数据 字符型数据可分为字符量(即单个字符)和字符串两种。 • 1. 字符量 C语言的字符是用单引号括起来的一个字符,如:'A'、'a'、'w'、'+'、'*'、'&'等都是C语言的字符量。需要说明的是,'A'和'a'是不同的字符量。
一个字符量在计算机的内存中占据一个字节容量,如表2.3所示,存储的值就是该字符的ASCII码值。因此,一个字节的字符量实际上就是一个字节的整型量。那么,字符量就可以参与整型数据类型的各种运算,即字符量与整型数据之间可以通用。一个字符量在计算机的内存中占据一个字节容量,如表2.3所示,存储的值就是该字符的ASCII码值。因此,一个字节的字符量实际上就是一个字节的整型量。那么,字符量就可以参与整型数据类型的各种运算,即字符量与整型数据之间可以通用。 • 例如: char c; /*定义c为字符型变量*/ • c = 'A' + 3; /*c被赋值为字母D*/
2. 字符串 在C语言中,字符串是由一对双引号括起来的字符序列。 例如:“China”、“Visual C++”、“Visual Basic 6.0”等都是合法的字符串。 需要注意的是: (1)不要将字符串与字符量相混淆。如:"A"和'A'是有区别的,前者是字符串,而后者是字符量。
(2)可以将字符量赋值给字符变量,但不能将字符串赋值给字符变量。(2)可以将字符量赋值给字符变量,但不能将字符串赋值给字符变量。
2.2 常量与变量 • 2.2.1 常量 常量是指在程序运行过程中其值不能被改变的量。 1. 整型常量 整型常量就是整常数。整型常量有十进制、八进制和十六进制三种表示形式。八进制整常数在书写时以数字0作前缀;十六进制整常数在书写时以0x作前缀;而十进制整常数在书写时没有前缀。
2. 实型常量 实型常量也称为浮点型常量。实型常量只采用十进制小数形式和指数形式表示,而不用八进制和十六进制形式表示。 3. 字符型常量 字符型常量必须用单引号括起来。可以使用转义字符表示一个特殊的字符,如ASCII码表中的控制字符、单引号、双引号、反斜线等。
4. 字符串常量 字符串常量应使用双引号括起来。 如:“programming”、“$98”、“”、“” 是合法的字符串常量。 需要说明的是:上述“”是空串,而“”是含空格字符的空格串。
字符串常量和字符常量是两种不同的量,它们之间的主要区别如下:字符串常量和字符常量是两种不同的量,它们之间的主要区别如下: • (1)字符型常量用单引号括起来,而字符串常量用双引号括起来。 • (2)字符常量只能是单个字符,而字符串常量可以含一个或多个字符。 • (3)字符常量在内存中占一个字节存储空间。字符串常量所占内存空间的字节数等于字符串中所包含的字符个数加1。添加的这一个字节用于在字符串的尾部存放字符'\0',表示字符串的结束,以便于对字符串的运算处理。
例如: • 字符串"programming"在内存中共占12个字节,其存储形式如下: • 'p''r''o''g''r''a''m''m''i''n''g''\0'字符'A'在内存中共占1个字节,而字符串"A"在内存中共占2个字节。 • (4)可把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量,而字符串常量是用字符型数组存储的。
5. 符号常量 常量除了上述直接常量表示外,还可用符号常量表示,即用标识符代表一个常量。符号常量在使用之前必须先定义,其一般定义格式如下: #define标识符 常量 • 例如: • #define PI 3.14159 /* 定义符号常量PI,值为3.14159 */ 其中#define是宏定义命令,它的功能是把该标识符定义为其后的常量值。
2.2 常量与变量 • 2.2.2 变量 变量是指在程序运行过程中其值可以被改变的量。 1.变量的命名 变量的命名规则与标识符的命名规则相 同。
变量的命名规则与标识符的命名规则相同。在对变量命名时,还应注意以下几点:变量的命名规则与标识符的命名规则相同。在对变量命名时,还应注意以下几点: (1)必须是以字母或下划线开头的,一串由字母、数字或下划线组成的字符序列。如price2、_sunday、personal_letter等都是合法的变量名;而3rd、personal-letter、M.D.John等是非法的变量名。 (2)大写字母和小写字母被认为是两个不同的字母,因此,max和MAX是两个不同的变量。C语言的变量名习惯用小写字母表示。 (3)变量名的长度不受限制。但应注意,在Turbo C中,标识符的有效长度为1~32个字符,因此,应在前32个字符中来区分变量名。 (4)不能用C语言的关键字作为变量名。如float不能用作变量名。 (5)变量的命名尽量能表达出该变量的含义,即见名知义。例如year、students等。
2.2.2 变量 2. 变量的定义 当在程序中引用变量时,必须先定义,后引用(联想学生报到注册过程)。凡未被定义的标识符,均不得作为变量名使用。 • 定义变量的一般格式为: 数据类型 变量名1, 变量名2,……; • 例如: • int m , n ; /* 定义了两个整型变量m,n */ • char ch1 , ch2 ; /* 定义了两个字符型变量ch1,ch2 */ • float x , y , z ; /* 定义了三个浮点型变量x,y,z */
2.2.2 变量 3. 变量赋初值 一个变量代表计算机内存中的某一存储空间,该存储空间的内容(存储空间内存放的数据)就是该变量的值。 • 变量赋初值就是对变量的初始化。可在定义变量名时对变量赋初值。 • 另外,在定义变量时,变量不能连续赋值。
也可在程序中对变量赋初值。 • 【例2.1】分析字符量与整型量的使用。 • /* 源程序名:CH0201.C */ • /*01*/ #include<stdio.h> • /*02*/ void main( ) • /*03*/ { • /*04*/ int k ; /* 定义整型变量k */ • /*05*/ char c1; /* 定义字符型变量c1 */ • /*06*/ c1='A' ; k=65 ; /* 对变量k 、c1赋初值 */ • /*07*/ k=k+32 ; c1=c1+32 ; /* 字符量参与整型量运算 */ • /*08*/ printf("k : %c\n", k) ; /* 将整型量按字符输出 */ • /*09*/ printf("c1 : %d\n", c1) ; /* 将字符量按整数输出 */ • /*10*/ } 输出结果为: k : a c1 : 97
C语言程序设计 主讲:沈济南 TEL:13971887071 E-mail:shenjinan@163.com