1、语言的基本知识概括语言的基本知识概括 (4)(4)括号括号:一、字符集和标识符一、字符集和标识符1 1、字符集:字符集:字符集是高级语言的编译系统所能识别的字母、数字符集是高级语言的编译系统所能识别的字母、数字和特殊符号。字和特殊符号。C C语言的字符集包括:语言的字符集包括:(1)(1)英文字母:大小写各英文字母:大小写各2626个,共计个,共计5252个;个;(2)(2)阿拉伯数:阿拉伯数:0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9 共共1010个数字;个数字;(3)(3)运算符:运算符:+、-、*、/、%.%.语言的基本知识概括语言的基本知识概括 (7
2、)(7)空白符:空格符、换行符、制表符。空白符:空格符、换行符、制表符。(5)(5)标点符号:标点符号:、“、:、;、:、;(6)(6)特殊符号:特殊符号:_$#_$#二、标识符二、标识符概念:就是用来标识变量名、符号常量名、概念:就是用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列。函数名、类型名、文件名等的有效字符序列。(1)(1)标识符只能由字母、数字和下划线三种字符标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线组成,且第一个字符必须为字母或下划线。定义规则:定义规则:如:如:_1 year month _1 year month stude
3、nt_namestudent_name sum0 sum0 M.D.JonesM.D.Jones$123#a 3b?c a=b$123#a 3b?c a=b(2)(2)在在C C语言中,大小写字母不等效。因此,语言中,大小写字母不等效。因此,a a和和A A,I I和和i i,SumSum和和sumsum,分别是两个不同的标识符。,分别是两个不同的标识符。(3)(3)用户自定义的标识符不能与保留字用户自定义的标识符不能与保留字(关键字关键字)同名。同名。(4 4)标识符的一般长度(即一个标识符允许的字)标识符的一般长度(即一个标识符允许的字符个数)一般规定取前符个数)一般规定取前8 8个字符为
4、有效字符,多余个字符为有效字符,多余的将不被识别。的将不被识别。:又称为命令符,在程序中有特定的含义。不能另作它用,其他字符无法直接替代它。(参看32个关键字):在C语言中,标识符分为3类:关键字标识符、预定义标识符、用户标识符(自己定义)。:在C语言中,一般是指C语言提供的库函数名和预编译处理命令(如printf、define)C语言允许这些标识符另作它用,但将使这些标识符失去了系统规定的原意。为了编程时方便、可靠、避免误解,一般把这些标识符固定使用。:在编程时,用户需要给一些变量、函数、数组、文件等命名,这类由用户自己定义的标识符称为用户标识符。关键字关键字概念:就是概念:就是具有特定含义
5、具有特定含义的标识符,用户不的标识符,用户不能用来作自定义标识符。能用来作自定义标识符。C C语言中的关键字较少,由语言中的关键字较少,由ANSIANSI标准推荐的关键标准推荐的关键字有字有3232个。个。常用的有:常用的有:(1)(1)与数据类型有关的(与数据类型有关的(1414):):char char intint float double signed unsigned float double signed unsigned short long void short long void structstruct union union typedeftypedef enumenum
6、 sizeofsizeof(3)(3)与程序控制结构有关的(与程序控制结构有关的(1212):):do while for if else switch case do while for if else switch case default default gotogoto continue continue break returnbreak return(2)(2)与存储类别有关的:与存储类别有关的:auto extern register staticauto extern register static 三、常量和变量三、常量和变量1、常量、常量概念:在程序运行中概念:在程序运行中
7、,其数值不能被改变的其数值不能被改变的量。量。2、变量、变量概念:在程序运行中概念:在程序运行中,其数值能够改变的量其数值能够改变的量。数据有常量和变量之分。数据有常量和变量之分。(一)常量和符号常量(一)常量和符号常量常量:在程序运行过程中值不能改变的量。常量:在程序运行过程中值不能改变的量。可分为不同的类型。可分为不同的类型。C语言中有语言中有3种常量:算术型运算常量种常量:算术型运算常量(如整型常量、实型常量等)、字符型常量(如字符常量、(如整型常量、实型常量等)、字符型常量(如字符常量、字符串常量)以及标识符所定义的常量(符号常量)。字符串常量)以及标识符所定义的常量(符号常量)。符号
8、常量:用一个标识符来代表一个常量,也就是标识符符号常量:用一个标识符来代表一个常量,也就是标识符形式的常量,它的值在其作用域中不能改变,也不能再被形式的常量,它的值在其作用域中不能改变,也不能再被赋值。习惯上符号常量名一般用大写字母表示。赋值。习惯上符号常量名一般用大写字母表示。使用符号常量的好处:使用符号常量的好处:(1)含义清楚,在定义符号常量名时最好考虑)含义清楚,在定义符号常量名时最好考虑“见名见名知意知意”。(2)在需要改动一个常量时能做到)在需要改动一个常量时能做到“一改全改一改全改”。(二)变量(二)变量 其值可以改动的量称做变量,一个变量应该有一个名其值可以改动的量称做变量,一
9、个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单元中存放字,在内存中占据一定的存储单元。在该存储单元中存放变量的值。变量的值。变量定义必须放在变量使用之前。一般放在函数体的开变量定义必须放在变量使用之前。一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念。头部分。要区分变量名和变量值是两个不同的概念。变量名实质是个符号地址,由系统来分配给它,每次程序变量名实质是个符号地址,由系统来分配给它,每次程序中读取变量值,实际上就是通过变量名找到相应的内存地中读取变量值,实际上就是通过变量名找到相应的内存地址,并从其存储单元中读取数据。址,并从其存储单元中读取数据。注意:在C语言
10、中,要求对所有用到的变量“先定义,后使用先定义,后使用”。intint a,b,ca,b,c;float float x,yx,y;char c1,c2;char c1,c2;或或 intint c1,c2;c1,c2;自己设定,满足自己设定,满足标识符的规定。标识符的规定。如:如:intint,float,charfloat,char;不可省变量定义形式变量定义形式:类型标识符类型标识符 变量名变量名1,1,变量名变量名2,2,变量名变量名3 3,.;例如:例如:类型说明符指定了变量的数据类型,例如类型说明符指定了变量的数据类型,例如int、char,变量名,变量名一般用小写字母表示,命名规
11、则要符合用户自定义标识符规一般用小写字母表示,命名规则要符合用户自定义标识符规则,最好也做到则,最好也做到“见名知意见名知意“,长度不超过,长度不超过8个字符,并且最个字符,并且最好选取有含义的英文单词(或其缩写)作标识符。除了数值好选取有含义的英文单词(或其缩写)作标识符。除了数值计算程序外,一般不要用代数符号做变量名,以增加程序的计算程序外,一般不要用代数符号做变量名,以增加程序的可读性。可读性。字符型(字符型(charchar)整型(整型(short,int,long,unsignedshort,int,long,unsigned)基本类型基本类型 数值类型数值类型 单精度型(单精度型(
12、floatfloat)实型实型 双精度型(双精度型(doubledouble)枚举类型(枚举类型(enumenum)数据类型数据类型 数组类型(数组类型()构造类型构造类型 结构体类型(结构体类型(structstruct)共用体类型(共用体类型(unionunion)指针类型(指针类型(*)空类型(空类型(voidvoid)四、四、C C语言的数据类型:语言的数据类型:1、基本数据类型:特点:它的值不可以再分解为其它类、基本数据类型:特点:它的值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。型。也就是说,基本数据类型是自我说明的。2、构造数据类型:构造数据类型是根据已定义的一个
13、或、构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个构造类型的值可以分解成若干个“成员成员”或或“元素元素”。每个每个“成员成员”都是一个基本数据类型或又是一个构造类都是一个基本数据类型或又是一个构造类型。在型。在C语言中,构造类型有以下几种:语言中,构造类型有以下几种:数组类型数组类型 结构体类型结构体类型 共用体(联合)类型共用体(联合)类型3、指针类型:指针是一种特殊的,同时又是具有重要作、指针类型:指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变
14、量在内存储器中的地用的数据类型。其值用来表示某个变量在内存储器中的地址。址。4、空类型:在调用函数值时,通常应向调用者返回一个、空类型:在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应函数值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例在函数定义及函数说明中给以说明,例如在例1.3中给出的中给出的show函数定义中,函数头为:函数定义中,函数头为:void show(x,y);void表明调表明调用后并不需要向调用者返回函数值。用后并不需要向调用者返回函数值。在本章中,我们先介绍基本数据类型中的整型、浮点型在本章中,
15、我们先介绍基本数据类型中的整型、浮点型和字符型。其余类型在以后各章中陆续介绍。和字符型。其余类型在以后各章中陆续介绍。1、整型常量整型常量有三种表现形式:有三种表现形式:十进制形式十进制形式:与数学上的整数表示相同与数学上的整数表示相同。例如例如:12,-100,0:12,-100,0八进制形式八进制形式:在数码前加数字在数码前加数字0 0。例如例如:0 012=112=1*8 81 1+2+2*8 80 0=10(=10(十进制)十进制)十六进制形式十六进制形式:在数码前加在数码前加0X0X(数字(数字0 0和字和字母母X X,大小写均可)。,大小写均可)。例如例如:0 x0 x12=112
16、=1*16161 1+2+2*16160 0=18(=18(十进制)十进制)五、整型数据五、整型数据 十六进制的数码除了数字十六进制的数码除了数字0-90-9外外,还使用英文字母还使用英文字母a-f(a-f(或或A-F)A-F)表示表示10-1510-15。如:如:0 x1e0 x1e、0Xabcdef0Xabcdef、0 x10000 x1000 但:但:0X2defg0X2defg、0 x100L0 x100L都是错误的。都是错误的。注意事项:注意事项:八进制的数码范围为八进制的数码范围为0-70-7;则:则:01018 8、0 09 91 1、0 0A A2 2 都是错误的数据表示方法。
17、都是错误的数据表示方法。2 2、整型变量、整型变量(一)整型变量的分类(一)整型变量的分类基本型,以基本型,以intint表示。表示。短整型,以短整型,以short short intint表示,或以表示,或以shortshort表示。表示。长整型,以长整型,以long long intint表示,或以表示,或以longlong表示。表示。无符号型,其中无符号型又分为无符号整型,无无符号型,其中无符号型又分为无符号整型,无符号短整型和无符号长整型,分别以符号短整型和无符号长整型,分别以unsigned unsigned intint unsigned shortunsigned shortun
18、signed longunsigned long表示。表示。intint x;x;long y;long y;20002000200120012002200220052005x xy y内存内存内存地址内存地址2003200320042004整型数据的取值范围整型数据的取值范围数据类型取值范围int-32768-32767short int-32768-32767long int-2147483648-2147483647unsigned int0-65535unsigned short0-65535unsigned long0-42949672952 2、整型常量的类型、整型常量的类型 在将
19、一个整型常量赋给一个整型变量时如何进行在将一个整型常量赋给一个整型变量时如何进行类型匹配?类型匹配?.短整型常量:短整型常量:.长整型常量:长整型常量:.如果某一计算机系统的如果某一计算机系统的C C版本确定的版本确定的short short intint 与与 intint型数据在内存中占据的长度相同,型数据在内存中占据的长度相同,.长整型常量的表示:长整型常量的表示:例如例如:1231 ,432:1231 ,432L,0LL,0L等等。等等。一般格式:一般格式:printfprintf(格式控制(或者称格式字符串),输出表列)(格式控制(或者称格式字符串),输出表列)如如printf(pr
20、intf(“%d%d,%,%cncn”,i,c,i,c)3、用、用printf显示整型数据显示整型数据 printfprintf()()函数的作用:向计算机系统默认的输函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个出设备(一般指终端或显示器)输出一个或多个任意类型的数据。任意类型的数据。普通字符:即原样输出的字符。普通字符:即原样输出的字符。(1)(1)“格式控制格式控制”是用双撇号括起来的字符串,也称是用双撇号括起来的字符串,也称“转换控制字符串转换控制字符串”,它包括两种信息:,它包括两种信息:格式说明,由格式说明,由“%”和格式字符组成,如和格式字符组成,如%
21、d%d,%f%f等。等。它的作用是将输出的数据转换成指定的格式输出。格它的作用是将输出的数据转换成指定的格式输出。格式说明必须用式说明必须用“%”开头,以一个格式控制符结束,在开头,以一个格式控制符结束,在格式字符的前面还可以插入格式字符的前面还可以插入“宽度说明宽度说明”、坐对齐符、坐对齐符号号“-”等附加字符。等附加字符。如果要输出的数据不止如果要输出的数据不止1 1个,相邻个,相邻2 2个之间用逗号分个之间用逗号分开。下面的开。下面的printfprintf()()函数都是合法的:函数都是合法的:(1 1)printf(%dprintf(%d%d,ad,a,b);b);(2 2)prin
22、tf(%d,3+2);printf(%d,3+2);(3 3)printf(aprintf(a=%f b=%5dn,a,a+3);=%f b=%5dn,a,a+3);(2 2)“输出表列输出表列”是需要输出的一些数据,可是需要输出的一些数据,可以是常量、变量或表达式。以是常量、变量或表达式。格式字符格式字符 意意 义义 d 以十进制形式输出带符号整数以十进制形式输出带符号整数(正数不输出符号正数不输出符号)o 以八进制形式输出无符号整数以八进制形式输出无符号整数(不输出前缀不输出前缀0)x,以十六进制形式输出无符号整数以十六进制形式输出无符号整数(不输出前缀不输出前缀Ox)u 以十进制形式输出
23、无符号整数以十进制形式输出无符号整数(正整数正整数)对于整型数据常用的输出格式有:对于整型数据常用的输出格式有:2 2)如果显示的整数是长整型数,一定要在转换)如果显示的整数是长整型数,一定要在转换字符前加字符前加l l 注意:注意:1 1)除了)除了%d%d,其余的格式都将数据作为无,其余的格式都将数据作为无符号数输出符号数输出?注意试一试注意试一试,看看%o%xo%x能否输出负数能否输出负数3 3)注意域宽、对齐方式以及普通字符的输出。)注意域宽、对齐方式以及普通字符的输出。一般格式:一般格式:scanfscanf(“格式信息格式信息”,地址表列,地址表列););5、用、用scanf输入整
24、型数据输入整型数据函数介绍函数介绍scanfscanf()()函数称做格式输入函数,即按用户指函数称做格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。定的格式从键盘上把数据输入到指定的变量之中。其中,其中,“格式信息格式信息”与与printfprintf()函数用法相似,()函数用法相似,通过在格式信息字符串中使用通过在格式信息字符串中使用%和转换字符来指定和转换字符来指定不同数据类型数据的输入方式,地址表列中给出不同数据类型数据的输入方式,地址表列中给出各变量的地址。地址是由地址运算符各变量的地址。地址是由地址运算符“&”后跟变后跟变量名组成的。量名组成的。按指定的宽度结
25、束。例如按指定的宽度结束。例如“%3d%3d”,只取,只取3 3列。列。使用使用scanfscanf函数时应注意的问题:函数时应注意的问题:1)1)输入数据时,遇到以下情况,系统认为该数据结束:输入数据时,遇到以下情况,系统认为该数据结束:遇到空格,或者回车键,或者遇到空格,或者回车键,或者TabTab键。键。遇到非法输入。例如,在输入数值数据时,遇到遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号字母等非数值符号(数值符号仅由数字字符数值符号仅由数字字符0-90-9、小数点和正负号构成小数点和正负号构成)。假设给假设给num1num1输入输入1212,给,给num2num2输入输入
26、3636,正确的输,正确的输入操作为:入操作为:1212,36362 2)“格式信息格式信息”中出现的除格式转换以外的字中出现的除格式转换以外的字符,则在输入数据时在对应位置输入与这些字符符,则在输入数据时在对应位置输入与这些字符相同的字符。相同的字符。例如:例如:scanf(%d,%d,&num1,&num2);scanf(%d,%d,&num1,&num2);1、浮点常量、浮点常量有二种表现形式:有二种表现形式:1 1)十进制小数形式)十进制小数形式:与数学上的实数表示与数学上的实数表示相同。如相同。如127.3 127.3 2 2)指数形式)指数形式:类似于数学中的指数形式。类似于数学中
27、的指数形式。C C语言中,它由整数部分、小数部分和指数语言中,它由整数部分、小数部分和指数部分组成。其中,前两部分用小数点连接,部分组成。其中,前两部分用小数点连接,后两部分用后两部分用e e(或(或E E)连接。)连接。e e(或(或E E)代表)代表1010的幂次的幂次例如例如1.2731.273+2+2等。等。六、浮点数六、浮点数指数部分可以省略(相当于用小数表示法)。指数部分可以省略(相当于用小数表示法)。浮点常量的构成规则是:浮点常量的构成规则是:整数部分可以不写,小数部分也可以不写,整数部分可以不写,小数部分也可以不写,但不能同时不写。但不能同时不写。如有指数部分,则字母如有指数部
28、分,则字母E E(e e)前必须有数字,)前必须有数字,该数字可以为整数也可以为小数;字母该数字可以为整数也可以为小数;字母E E(e e)后必须为整数(范围为后必须为整数(范围为1 1到到3 3位的整数),可以位的整数),可以为正或负,正号可以省略。为正或负,正号可以省略。所有的指数都是整数所有的指数都是整数2 2、浮点变量、浮点变量在标准在标准C C语言中,浮点数分为单精度(语言中,浮点数分为单精度(floatfloat型)型)、双精度(、双精度(doubledouble型),有的型),有的C C版本还支持长双精版本还支持长双精度型(度型(long doublelong double)。)
29、。1 1)单精度型。类型关键字为)单精度型。类型关键字为floatfloat,一般占字节(,一般占字节(位)、其数值表示范围为位)、其数值表示范围为1010-37-3710103838,提供位,提供位有效数字,保留有效数字,保留6 6位小数位。如位小数位。如float afloat a,b b;2 2)双精度型。类型关键字为)双精度型。类型关键字为doubledouble,一般占,一般占个字节(个字节(6464位)、其数值范围为位)、其数值范围为1010-307-3071010308308,提供提供15161516位有效数字。如位有效数字。如double cdouble c,d d;注意:注意
30、:C C编译系统将浮点常量作为双精度编译系统将浮点常量作为双精度(doubledouble型)来处理。浮点常量也象整型)来处理。浮点常量也象整型常量一样,如果浮点常量超过了机器型常量一样,如果浮点常量超过了机器所能表示的范围,否则发生溢出,得不所能表示的范围,否则发生溢出,得不到一个正确的数值。到一个正确的数值。格式字符格式字符 意义意义 f f 以小数形式输出单、双精度实数以小数形式输出单、双精度实数 e,Ee,E 以指数形式输出单、双精度实数以指数形式输出单、双精度实数3、用、用printf显示浮点数据显示浮点数据输出浮点数可以用的转换说明符是输出浮点数可以用的转换说明符是%f%f和和%e
31、%e。输出双精度(输出双精度(doubledouble)类型时,还需要加上字母)类型时,还需要加上字母l l。输出浮点数不仅可以控制域宽,还可以控制小数输出浮点数不仅可以控制域宽,还可以控制小数部分的输出位数(精度)。方法是在在部分的输出位数(精度)。方法是在在%与与f f(或(或e e)之间加上两个数字并在这两个数字之间加上一个之间加上两个数字并在这两个数字之间加上一个句点句点“.”。例如。例如%10.3f%10.3f表示输出格式是域宽表示输出格式是域宽1010,有效位有效位3 3。注意:注意:1 1)域宽不是指整数位的域宽,而是整个浮点)域宽不是指整数位的域宽,而是整个浮点数的域宽,还包括
32、了小数点,小数位。如果不指数的域宽,还包括了小数点,小数位。如果不指定域宽和精度,默认的精度是定域宽和精度,默认的精度是6 6。2 2)如果指定的域宽大于所显示的数的实际域宽,)如果指定的域宽大于所显示的数的实际域宽,未用的位置用空格填写。如果指定的域宽小于所未用的位置用空格填写。如果指定的域宽小于所显示的数的实际域宽,按数的实际域宽显示。显示的数的实际域宽,按数的实际域宽显示。3 3)左对齐符号同样适用于浮点数。)左对齐符号同样适用于浮点数。4、用、用scanf输入浮点数据输入浮点数据 浮点数的输入也是使用转换字符浮点数的输入也是使用转换字符f f和和e e,直接使,直接使用用%f%f和和%
33、e%e可以输入可以输入floatfloat类型数据,使用类型数据,使用%lf%lf和和%le%le则输入则输入doubledouble类型数据。类型数据。练习1main()int n1=123;long n2=123456;printf(n1=%d,n1=%5d,n1=%5d,n1=%2dn,n1,n1,n1,n1);printf(n2=%ld,n2=%8ld,n2=%5ldn,n2,n2,n2);printf(n1=%ldn,n1);程序运行结果如下:n1=123,n1=123,n1=123,n1=123n2=123456,n2=123456,n2=123456n1=16908411对于整数
34、,还可用八进制、无符号形式(%o(小写字母o))和十六进制、无符号形式(%x)输出。对于unsigned型数据,也可用%u格式符,以十进制、无符号形式输出。所谓无符号形式是指,不论正数还是负数,系统一律当作无符号整数来输出。例如,printf(%d,%o,%xn,-1,-1,-1);类型转换字符f的使用。main()float f=123.456;double d1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf(%f,%12f,%12.2f,%-12.2f,%.2fn,f,f,f,f,f);printf(d1+d
35、2=%fn,d1+d2);程序运行结果如下:123.456001,123.456001,123.46,123.46,123.46d1+d2=3333333333333.3330101、字符常量、字符常量字符常量就是用两个单引号将一个字符括起来。字符常量就是用两个单引号将一个字符括起来。如如a、b在在C C语言中,字符常量具有数值特性,字符量的值语言中,字符常量具有数值特性,字符量的值就是此字符的就是此字符的ASCIIASCII码值。例如码值。例如 A A对应的对应的 ASCIIASCII码值是码值是6565。七、字符型数据七、字符型数据注意:注意:1 1)引号中的字符只能是一个字符。如)引号中
36、的字符只能是一个字符。如abab是错误的。是错误的。2 2)不能用双引号括起一个字符表示单个字符)不能用双引号括起一个字符表示单个字符常量。例如常量。例如“a a”是错误的。是错误的。3 3)字符型常量在内存中占用一个字节,存放的)字符型常量在内存中占用一个字节,存放的是字符的是字符的ASCIIASCII值。所有的字符常量作为整型值。所有的字符常量作为整型量进行运算,并且可参与各种操作。量进行运算,并且可参与各种操作。4 4)一些非图形字符,如退格、换行等,也可以表)一些非图形字符,如退格、换行等,也可以表示成字符型常量。表示方法是用转义符示成字符型常量。表示方法是用转义符“”与一与一些特殊字
37、符构成转义字符(转义序列)。例些特殊字符构成转义字符(转义序列)。例如如nn表示回车换行。表示回车换行。转义字符是一种特殊形式的字符常量,它表示转义字符是一种特殊形式的字符常量,它表示将将“”后的字符转换成另外的意义。又如后的字符转换成另外的意义。又如ff不代表字母不代表字母f f而是指而是指“换页,将当前位置移到换页,将当前位置移到下页开头。下页开头。具体可参见表具体可参见表1.21.22 2、字符变量、字符变量用来存放字符常量,并且只能放一个字符。用来存放字符常量,并且只能放一个字符。定义形式:定义形式:char c1,c2;char c1,c2;赋值:赋值:c1=c1=a a;c2=;c
38、2=b b;注意:一个字符型变量在内存中只占一个字节。注意:一个字符型变量在内存中只占一个字节。特性:字符数据在内存中存储的是字符的特性:字符数据在内存中存储的是字符的ASCIIASCII码码 一个无符号整数,其形式与整数的存储形式一个无符号整数,其形式与整数的存储形式一样,所以语言允许字符型数据与整型数据之一样,所以语言允许字符型数据与整型数据之间通用。间通用。3 3、用用printfprintf显示字符显示字符使用转换说明使用转换说明%c%c就可以输出单个字符。可参见例就可以输出单个字符。可参见例2.82.8注意:一个字符型数据,既可以字符形式输出,也注意:一个字符型数据,既可以字符形式输
39、出,也可以整数形式输出。可以整数形式输出。4 4、用、用scanfscanf输入字符输入字符同样,同样,%c%c也可以用于控制输入单个字符。也可以用于控制输入单个字符。在输入字符时,要注意:空格和转义字符均作为有在输入字符时,要注意:空格和转义字符均作为有效字符被输入。效字符被输入。例如,例如,scanf(%c%c%c,&a,&b,&cscanf(%c%c%c,&a,&b,&c););printf(c1=%c,c2=%c,c3=%cn,c1,c2,c3);printf(c1=%c,c2=%c,c3=%cn,c1,c2,c3);假设输入:假设输入:A AB BCC,则系统将字母,则系统将字母AA
40、赋值给赋值给a a,空格,空格 赋值给赋值给b b,字母,字母BB赋值给赋值给c c。只有当输。只有当输入为:入为:ABCABC时,才能把时,才能把AA赋于赋于a,a,B B 赋予赋予b,b,C C赋予赋予c c。如果在格式控制中加入空格作为间隔,如:如果在格式控制中加入空格作为间隔,如:scanfscanf (%c%c%(%c%c%c,&a,&b,&cc,&a,&b,&c);则输入时各数据之间;则输入时各数据之间可加空格。可加空格。5 5、用、用getchargetchar输入字符和输入字符和putcharputchar输出字符输出字符C C语言还提供了语言还提供了2 2个函数用于字符的输入
41、和输出。个函数用于字符的输入和输出。getchargetchar函数用于输入一个字符。函数用于输入一个字符。putcharputchar函授用于输出一个字符。函授用于输出一个字符。使用这使用这2 2个函数一定要在程序首部加上个函数一定要在程序首部加上#include#include“stdio.hstdio.h”(stdio.hstdio.h是是standard standard input&outputinput&output的缩写,它包含了与标准的缩写,它包含了与标准I/OI/O库有关的变量定义和宏库有关的变量定义和宏定义。)定义。)getchargetchar函数用法函数用法1 1)ge
42、tchargetchar()()函数的格式:函数的格式:getchargetchar();();2 2)getchargetchar()()函数的作用:从一个标准输入设备(函数的作用:从一个标准输入设备(如键盘)输入一个字符。如键盘)输入一个字符。3 3)getchargetchar()()函数只能用于单个字符的输入,一次输函数只能用于单个字符的输入,一次输入一个字符。入一个字符。getchargetchar()()函数得到的字符可以赋给一函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。如为表达式的一部分。如
43、putchar(getcharputchar(getchar()();4 4)和)和scanfscanf()()函数一样,在函数一样,在TCTC屏幕下运行含本函数屏幕下运行含本函数程序时,将退出程序时,将退出TC TC 屏幕进入用户屏幕等待用户输入屏幕进入用户屏幕等待用户输入。输入完毕再返回。输入完毕再返回TCTC屏幕。屏幕。可参见可参见p15 p15 例例1.91.9putcharputchar函数用法函数用法1 1)putcharputchar()()函数的格式:函数的格式:putchar(chputchar(ch););其中其中chch可以是一个字符变量或常可以是一个字符变量或常量,也可以是一个转义字符。量,也可以是一个转义字符。2 2)putcharputchar()()函数的作用:向终端(屏幕)输出一函数的作用:向终端(屏幕)输出一个字符。个字符。