第六章 基本数据类型第六章 基本数据类型
6.1 C语言的基本数据类型基本类型构造类型指针类型空类型整型字符型实型(浮点型)
枚举类型单精度型双精度型数组类型结构体类型共用体类型第六章 基本数据类型
6.2 标识符、常量和变量一、标识符
1,标识符的概念标识符是给程序中的变量、数组、自定义类型(结构体类型、共用体类型和枚举类型)、
自定义函数、标号和文件等所起的名字。
2,标识符的命名规则
( 1)字符规则:只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
( 2)长度规则:最好不超过 8个字符。
第六章 基本数据类型
3.标识符的分类
( 1)关键字标识符,C语言中的关键字共有 32个,
他们已有专门的含义,不能用作其他用途
( 2)预定义标识符:是指 C语言提供的库函数名和预编译处理命令等,如,scanf,printf,
include,define等。
( 3)用户自定义标识符:用户在编程时,要给一些变量、函数、数组、文件等命名,将这类由用户根据需要自己定义的标识符称为用户自定义标识符。
6.2 标识符、常量和变量一、标识符第六章 基本数据类型
说明:
( 1) C语言中的标识符区分英文字符的大小写,即同一字母的大小写被认为是两个不同的字符。
( 2)给变量命名时,应遵循,见名知意,
这一基本原则。
6.2 标识符、常量和变量一、标识符第六章 基本数据类型
1,常量的概念在程序运行过程中,其值不能被改变的量称为常量。
2,常量的分类根据常量的取值对象,C语言将常量分为以下 5
种类型:
( 1) 整型常量 。 例如,16,0,- 3等 。
( 2) 实型常量 。 例如,3.14159,- 3.6等 。
( 3) 字符常量 。 例如,'A','5','#'等 。
( 4) 字符串常量 。 例如,"Abc","45+ 35"等 。
( 5)符号常量。
6.2 标识符、常量和变量二、常量第六章 基本数据类型
1,变量的概念在程序运行过程中,其值可以被改变的量称为变量。
2,变量的两个要素:变量名和变量值 。
( 1) 变量名,每个变量都必须有一个名字,
即变量名 。 变量命名应遵循标识符的命名规则 。
( 2) 变量值在程序运行过程中,变量值存储在内存中 。 不同类型的变量,占用的内存单元 ( 字节 ) 数不同 。 在程序中,通过变量名来引用变量的值 。
6.2 标识符、常量和变量三、变量第六章 基本数据类型
3,变量的定义与初始化变量定义的一般格式如下:
[存储类型 ] 数据类型 变量名 1,变量名
2,…… ;
例如:
int i,j,k; /*定义 i,j,k为整型变量 */
long m,n; /*定义 m,n为长整型变量 */
float r,l,area; /*定义 r,l,area为实型变量
*/
char ch1,ch2; /*定义 ch1,ch2为字符型变量
*/
6.2 标识符、常量和变量三、变量第六章 基本数据类型在定义变量的同时,进行赋初值的操作称为,变量初始化,。
变量初始化的一般格式如下:
[存储类型 ] 数据类型 变量名 1[=初值 1],变量名 2[=初值 2],…… ;
例如:
float r=2.5,l,area;
6.2 标识符、常量和变量三、变量第六章 基本数据类型
1,表示形式在 C语言中,整型常量有三种表示形式:
( 1) 十进制 ( 以非 0开头 ) 。
例如,50,- 365,153,0等 。
( 2) 八进制 ( 以数字 0开头 ) 。
例如,016,0165等 。
( 3) 十六进制 ( 以数字 0加小写字母 x开头 ) 。
例如,0x336,0x2af等 。
6.3 整型数据一、整型常量第六章 基本数据类型
2,分类
( 1) 基本整型 。
在 16位操作系统中,用 2字节存储,其数据范围为- 32768~ 32767。
( 2) 长整型 ( 在数值后面加,L”或,l”) 。
对超出基本整型变量的整型常量,可使用长整型常量表示,其取值范围可达- 231~ 231- 1。
例如 12l,215L等 。
6.3 整型数据一、整型常量第六章 基本数据类型
3,类型匹配规则一个整型常量赋给一个整型变量时,其数据类型的匹配规则为:一个整型常量,可以赋给能容纳下其值的整型变量 。
注意,常量无 unsigned型,但一个非负整型常量,
只要它的值不超过相应变量的值域 ( 即取值范围 ),也可以赋给 unsigned型变量 。
6.3 整型数据一、整型常量第六章 基本数据类型
1,分类整型变量可以分为以下四类:
( 1) 短整型,类型关键字为 short [int]
( 2) 基本整型,类型关键字为 int
( 3) 长整型,类型关键字为 long [int]
( 4) 无符号整型,类型关键字为 unsigned [int]或
unsigned short或 unsigned long
unsigned [int]表示无符号基本整型
unsigned short表示无符号短整型
unsigned long表示无符号长整型无符号整型只能用来存储无符号整数。
6.3 整型数据二、整型变量第六章 基本数据类型
2,占用内存字节数与值域
6.3 整型数据二、整型变量表 6-1 各类整型数据的长度及取值范围类 型 类型标识符 所占字节数 数 值 范 围基本类型 int 2 - 32768~32767即- 215~(215- 1)
短整型 short[int] 2 - 32768~32767即- 215~(215- 1)
长整型 long[int] 4 - 231~(231- 1)
无符号整型 unsigned[int] 2 0~65535即 0~216- 1
无符号短整型 unsigned short 2 0~65535即 0~216- 1
无符号长整型 unsigned long 4 0~232- 1
第六章 基本数据类型
[例 6.1]整型数据程序示例。
main()
{ int a,b,c,d; a=10,b=5;
c=a+ b; d=32767+ 1;
printf("c=%d\n",c); printf("d=%d\n",d);
}
程序的运行结果如下:
c=15
d=- 32768
6.3 整型数据二、整型变量第六章 基本数据类型
1,表示形式实型常量即实数,又称浮点数,其值有两种表示形式:
( 1) 十进制形式 。 由数字和小数点组成 。
例如,3.141 59,.8,- 12.567,12.等 。
( 2) 指数形式 。 一般格式为,尾数 E(e)整型指数例如,3.05E+ 5,- 1.2342e- 12等 。
用指数形式表示实型数据时,在 C语言中有如下语法规定:
① 字母 e或 E之前必须要有数字 。
② 字母 e或 E之后的指数必须为整数 。
③ 在字母 e或 E的前后以及数字之间不得插入空格 。
6.4 实型数据一,实型常量第六章 基本数据类型
2,关于类型实型常量不分 float型和 double型 。 一个实型常量,可以赋给一个实型变量 (float型或 double型 )。
如:
float a,b=3.13145;
double x,y = - 4.6456;
6.4 实型数据一,实型常量第六章 基本数据类型
C语言的实型变量分为单精度型 (float)和双精度型
(double)两种 。
例如:
float a,b; /*指定 a,b为单精度实型变量 */
double c; /*指定 c为双精度实型变量 */
6.4 实型数据二,实型变量第六章 基本数据类型
[例 6.2]实型数据程序示例 。
main()
{ float x;
double y;
x=123456.7777; y=123456.7777;
printf("x=%f,y=%f\n",x,y);
}
程序的运行结果如下:
x=123456.781250,y=123456.777700
6.4 实型数据二,实型变量第六章 基本数据类型
1,普通字符常量用一对单引号括起来的单个字符 。
例如,'A','6','+ ' 等 。
2,转义字符
C语言还允许使用一种特殊形式的字符常量,
就是以反斜杠,\”开头的转义字符,该形式将反斜杠后面的字符转变成另外的意义,因而称为转义字符。
6.4 字符型数据一,字符型常量第六章 基本数据类型字符形式 功 能
\n 换行
\t 横向跳格(跳到下一个输出区)
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜杠字符
\' 单引号字符
\" 双引号字符
\ddd 1到 3位 8进制数所代表的字符,如 '\123',表示 8进制数 123
\xhh 1到 2位 16进制数所代表的字符,如 '\x21',表示 16进制数 21
6.4 字符型数据一,字符型常量表 6-3 常用转义字符第六章 基本数据类型
[例 6.3]转义字符的输出。
main( )
{ printf(“\x4F\x4B\x21\n”);
/*等价于 printf("OK!\n"); */
printf("\101\x62\n");
}
程序运行结果:
OK!
Ab
6.4 字符型数据一,字符型常量第六章 基本数据类型
字符变量的类型关键字为 char,占 1字节的内存单元 。
1.变量值的存储字符变量用来存储字符常量。实际上是将该字符常量的 ASCII码值(无符号正数)存储到内存单元中。
如,char ch1,ch2; /*定义两个字符变量 ch1和 ch2*/
ch1='a'; ch2='b'; /*给字符变量赋值 */
小写字母 a,b的 ASCII码值分别为 97,98。
6.4 字符型数据二,字符型变量第六章 基本数据类型
2,特性字符数据在内存中占一个字节,存储的是字符的 ASCII码值 ——一个无符号整数,其形式与整数的存储形式一样,所以 C语言允许字符型数据与整型数据之间通用 。
( 1)一个字符型数据,既可以以字符形式输出,
也可以以整数形式输出。
6.4 字符型数据二,字符型变量第六章 基本数据类型
[例 6.4] 字符变量的字符形式输出和整数形式输出。
main()
{char ch1,ch2;
ch1='A'; ch2='a';
printf("ch1=%c,ch2=%c\n",ch1,ch2);
printf("ch1=%d,ch2=%d\n",ch1,ch2);
}
程序运行结果:
ch1=A,ch2=a
ch1=65,ch2=97
6.4 字符型数据二,字符型变量第六章 基本数据类型
( 2)允许对字符数据进行算术运算,也就是对它们的
ASCII码值进行算术运算。
6.4 字符型数据二,字符型变量
[例 6.5]字符数据的算术运算。
main()
{char ch1,ch2; ch1='a'; ch2='B';
printf("ch1=%c,ch2=%c\n",ch1- 32,ch2+ 32);
printf("ch1+ 200=%d\n",ch1+ 200);
printf("ch1+ 200=%c\n",ch1+ 200);
printf("ch1+ 256=%d\n",ch1+ 256);
printf("ch1+ 256=%c\n",ch1+ 256);
}
程序运行结果:
ch1=A,ch2=b
ch1+ 200=297
ch1+ 200=)
ch1+ 256=353
ch1+ 256=a
第六章 基本数据类型
1.字符串常量的概念字符串常量是用一对双引号括起来的若干字符序列 。
如,"abc\n"。
如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符 。
例如:
C:\msdos\v6.22 应表示为 "C:\\msdos\\v6.22";
I say:,Good bye!” 应表示为 "I say:\"Good bye!\""。
6.4 字符型数据三,字符串常量第六章 基本数据类型
2.字符串的存储
C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个 '\0'作为字符串的结束标志 。
注意:在源程序中书写字符串常量时,不必加结束字符 '\0',在存储时,系统会自动加上。
6.4 字符型数据三,字符串常量如果有一个字符串为,CHINA”,则它在内存中的实际存储为:
C H I N A \0
第六章 基本数据类型
请严格区分字符常量与字符串常量:
( 1) 定界符不同:字符常量使用单引号,而字符串常量使用双引号 。
( 2) 长度不同:字符常量的长度固定为 1,而字符串常量的长度可以是 0,也可以是某个正整数 。
( 3)存储内容不同:字符常量存储的是字符的 ASCII
码值,而字符串常量除了要存储有效字符(其实存储的也是 ASCII值)外,还要存储一个结束标志 '\0'。
6.4 字符型数据三,字符串常量
6.1 C语言的基本数据类型基本类型构造类型指针类型空类型整型字符型实型(浮点型)
枚举类型单精度型双精度型数组类型结构体类型共用体类型第六章 基本数据类型
6.2 标识符、常量和变量一、标识符
1,标识符的概念标识符是给程序中的变量、数组、自定义类型(结构体类型、共用体类型和枚举类型)、
自定义函数、标号和文件等所起的名字。
2,标识符的命名规则
( 1)字符规则:只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
( 2)长度规则:最好不超过 8个字符。
第六章 基本数据类型
3.标识符的分类
( 1)关键字标识符,C语言中的关键字共有 32个,
他们已有专门的含义,不能用作其他用途
( 2)预定义标识符:是指 C语言提供的库函数名和预编译处理命令等,如,scanf,printf,
include,define等。
( 3)用户自定义标识符:用户在编程时,要给一些变量、函数、数组、文件等命名,将这类由用户根据需要自己定义的标识符称为用户自定义标识符。
6.2 标识符、常量和变量一、标识符第六章 基本数据类型
说明:
( 1) C语言中的标识符区分英文字符的大小写,即同一字母的大小写被认为是两个不同的字符。
( 2)给变量命名时,应遵循,见名知意,
这一基本原则。
6.2 标识符、常量和变量一、标识符第六章 基本数据类型
1,常量的概念在程序运行过程中,其值不能被改变的量称为常量。
2,常量的分类根据常量的取值对象,C语言将常量分为以下 5
种类型:
( 1) 整型常量 。 例如,16,0,- 3等 。
( 2) 实型常量 。 例如,3.14159,- 3.6等 。
( 3) 字符常量 。 例如,'A','5','#'等 。
( 4) 字符串常量 。 例如,"Abc","45+ 35"等 。
( 5)符号常量。
6.2 标识符、常量和变量二、常量第六章 基本数据类型
1,变量的概念在程序运行过程中,其值可以被改变的量称为变量。
2,变量的两个要素:变量名和变量值 。
( 1) 变量名,每个变量都必须有一个名字,
即变量名 。 变量命名应遵循标识符的命名规则 。
( 2) 变量值在程序运行过程中,变量值存储在内存中 。 不同类型的变量,占用的内存单元 ( 字节 ) 数不同 。 在程序中,通过变量名来引用变量的值 。
6.2 标识符、常量和变量三、变量第六章 基本数据类型
3,变量的定义与初始化变量定义的一般格式如下:
[存储类型 ] 数据类型 变量名 1,变量名
2,…… ;
例如:
int i,j,k; /*定义 i,j,k为整型变量 */
long m,n; /*定义 m,n为长整型变量 */
float r,l,area; /*定义 r,l,area为实型变量
*/
char ch1,ch2; /*定义 ch1,ch2为字符型变量
*/
6.2 标识符、常量和变量三、变量第六章 基本数据类型在定义变量的同时,进行赋初值的操作称为,变量初始化,。
变量初始化的一般格式如下:
[存储类型 ] 数据类型 变量名 1[=初值 1],变量名 2[=初值 2],…… ;
例如:
float r=2.5,l,area;
6.2 标识符、常量和变量三、变量第六章 基本数据类型
1,表示形式在 C语言中,整型常量有三种表示形式:
( 1) 十进制 ( 以非 0开头 ) 。
例如,50,- 365,153,0等 。
( 2) 八进制 ( 以数字 0开头 ) 。
例如,016,0165等 。
( 3) 十六进制 ( 以数字 0加小写字母 x开头 ) 。
例如,0x336,0x2af等 。
6.3 整型数据一、整型常量第六章 基本数据类型
2,分类
( 1) 基本整型 。
在 16位操作系统中,用 2字节存储,其数据范围为- 32768~ 32767。
( 2) 长整型 ( 在数值后面加,L”或,l”) 。
对超出基本整型变量的整型常量,可使用长整型常量表示,其取值范围可达- 231~ 231- 1。
例如 12l,215L等 。
6.3 整型数据一、整型常量第六章 基本数据类型
3,类型匹配规则一个整型常量赋给一个整型变量时,其数据类型的匹配规则为:一个整型常量,可以赋给能容纳下其值的整型变量 。
注意,常量无 unsigned型,但一个非负整型常量,
只要它的值不超过相应变量的值域 ( 即取值范围 ),也可以赋给 unsigned型变量 。
6.3 整型数据一、整型常量第六章 基本数据类型
1,分类整型变量可以分为以下四类:
( 1) 短整型,类型关键字为 short [int]
( 2) 基本整型,类型关键字为 int
( 3) 长整型,类型关键字为 long [int]
( 4) 无符号整型,类型关键字为 unsigned [int]或
unsigned short或 unsigned long
unsigned [int]表示无符号基本整型
unsigned short表示无符号短整型
unsigned long表示无符号长整型无符号整型只能用来存储无符号整数。
6.3 整型数据二、整型变量第六章 基本数据类型
2,占用内存字节数与值域
6.3 整型数据二、整型变量表 6-1 各类整型数据的长度及取值范围类 型 类型标识符 所占字节数 数 值 范 围基本类型 int 2 - 32768~32767即- 215~(215- 1)
短整型 short[int] 2 - 32768~32767即- 215~(215- 1)
长整型 long[int] 4 - 231~(231- 1)
无符号整型 unsigned[int] 2 0~65535即 0~216- 1
无符号短整型 unsigned short 2 0~65535即 0~216- 1
无符号长整型 unsigned long 4 0~232- 1
第六章 基本数据类型
[例 6.1]整型数据程序示例。
main()
{ int a,b,c,d; a=10,b=5;
c=a+ b; d=32767+ 1;
printf("c=%d\n",c); printf("d=%d\n",d);
}
程序的运行结果如下:
c=15
d=- 32768
6.3 整型数据二、整型变量第六章 基本数据类型
1,表示形式实型常量即实数,又称浮点数,其值有两种表示形式:
( 1) 十进制形式 。 由数字和小数点组成 。
例如,3.141 59,.8,- 12.567,12.等 。
( 2) 指数形式 。 一般格式为,尾数 E(e)整型指数例如,3.05E+ 5,- 1.2342e- 12等 。
用指数形式表示实型数据时,在 C语言中有如下语法规定:
① 字母 e或 E之前必须要有数字 。
② 字母 e或 E之后的指数必须为整数 。
③ 在字母 e或 E的前后以及数字之间不得插入空格 。
6.4 实型数据一,实型常量第六章 基本数据类型
2,关于类型实型常量不分 float型和 double型 。 一个实型常量,可以赋给一个实型变量 (float型或 double型 )。
如:
float a,b=3.13145;
double x,y = - 4.6456;
6.4 实型数据一,实型常量第六章 基本数据类型
C语言的实型变量分为单精度型 (float)和双精度型
(double)两种 。
例如:
float a,b; /*指定 a,b为单精度实型变量 */
double c; /*指定 c为双精度实型变量 */
6.4 实型数据二,实型变量第六章 基本数据类型
[例 6.2]实型数据程序示例 。
main()
{ float x;
double y;
x=123456.7777; y=123456.7777;
printf("x=%f,y=%f\n",x,y);
}
程序的运行结果如下:
x=123456.781250,y=123456.777700
6.4 实型数据二,实型变量第六章 基本数据类型
1,普通字符常量用一对单引号括起来的单个字符 。
例如,'A','6','+ ' 等 。
2,转义字符
C语言还允许使用一种特殊形式的字符常量,
就是以反斜杠,\”开头的转义字符,该形式将反斜杠后面的字符转变成另外的意义,因而称为转义字符。
6.4 字符型数据一,字符型常量第六章 基本数据类型字符形式 功 能
\n 换行
\t 横向跳格(跳到下一个输出区)
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜杠字符
\' 单引号字符
\" 双引号字符
\ddd 1到 3位 8进制数所代表的字符,如 '\123',表示 8进制数 123
\xhh 1到 2位 16进制数所代表的字符,如 '\x21',表示 16进制数 21
6.4 字符型数据一,字符型常量表 6-3 常用转义字符第六章 基本数据类型
[例 6.3]转义字符的输出。
main( )
{ printf(“\x4F\x4B\x21\n”);
/*等价于 printf("OK!\n"); */
printf("\101\x62\n");
}
程序运行结果:
OK!
Ab
6.4 字符型数据一,字符型常量第六章 基本数据类型
字符变量的类型关键字为 char,占 1字节的内存单元 。
1.变量值的存储字符变量用来存储字符常量。实际上是将该字符常量的 ASCII码值(无符号正数)存储到内存单元中。
如,char ch1,ch2; /*定义两个字符变量 ch1和 ch2*/
ch1='a'; ch2='b'; /*给字符变量赋值 */
小写字母 a,b的 ASCII码值分别为 97,98。
6.4 字符型数据二,字符型变量第六章 基本数据类型
2,特性字符数据在内存中占一个字节,存储的是字符的 ASCII码值 ——一个无符号整数,其形式与整数的存储形式一样,所以 C语言允许字符型数据与整型数据之间通用 。
( 1)一个字符型数据,既可以以字符形式输出,
也可以以整数形式输出。
6.4 字符型数据二,字符型变量第六章 基本数据类型
[例 6.4] 字符变量的字符形式输出和整数形式输出。
main()
{char ch1,ch2;
ch1='A'; ch2='a';
printf("ch1=%c,ch2=%c\n",ch1,ch2);
printf("ch1=%d,ch2=%d\n",ch1,ch2);
}
程序运行结果:
ch1=A,ch2=a
ch1=65,ch2=97
6.4 字符型数据二,字符型变量第六章 基本数据类型
( 2)允许对字符数据进行算术运算,也就是对它们的
ASCII码值进行算术运算。
6.4 字符型数据二,字符型变量
[例 6.5]字符数据的算术运算。
main()
{char ch1,ch2; ch1='a'; ch2='B';
printf("ch1=%c,ch2=%c\n",ch1- 32,ch2+ 32);
printf("ch1+ 200=%d\n",ch1+ 200);
printf("ch1+ 200=%c\n",ch1+ 200);
printf("ch1+ 256=%d\n",ch1+ 256);
printf("ch1+ 256=%c\n",ch1+ 256);
}
程序运行结果:
ch1=A,ch2=b
ch1+ 200=297
ch1+ 200=)
ch1+ 256=353
ch1+ 256=a
第六章 基本数据类型
1.字符串常量的概念字符串常量是用一对双引号括起来的若干字符序列 。
如,"abc\n"。
如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符 。
例如:
C:\msdos\v6.22 应表示为 "C:\\msdos\\v6.22";
I say:,Good bye!” 应表示为 "I say:\"Good bye!\""。
6.4 字符型数据三,字符串常量第六章 基本数据类型
2.字符串的存储
C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个 '\0'作为字符串的结束标志 。
注意:在源程序中书写字符串常量时,不必加结束字符 '\0',在存储时,系统会自动加上。
6.4 字符型数据三,字符串常量如果有一个字符串为,CHINA”,则它在内存中的实际存储为:
C H I N A \0
第六章 基本数据类型
请严格区分字符常量与字符串常量:
( 1) 定界符不同:字符常量使用单引号,而字符串常量使用双引号 。
( 2) 长度不同:字符常量的长度固定为 1,而字符串常量的长度可以是 0,也可以是某个正整数 。
( 3)存储内容不同:字符常量存储的是字符的 ASCII
码值,而字符串常量除了要存储有效字符(其实存储的也是 ASCII值)外,还要存储一个结束标志 '\0'。
6.4 字符型数据三,字符串常量