基本数据类型和表达式.ppt
《基本数据类型和表达式.ppt》由会员分享,可在线阅读,更多相关《基本数据类型和表达式.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 基本数据类型和表达式 在第二章中,我们从总体上介绍了一个C程序的基本结构,使读者对C程序有了大概的了解。本章将详细介绍C语言程序中使用的基本语法单位基本语法单位、数据类型数据类型、运算符运算符和表表达式达式。3.1 基本语法单位 任何一种语言都会根据自身的特点规定它自己特定的一套基本符号。例如,英语的基本符号是26个英文字母和一些标点符号。C语言作为一种程序设计语言,也有它的基本符号,程序就是由这些基本符号基本符号组成的。3.1.1 基本符号 程序中要对各种变量和各种函数起名,这些变量名、程序中要对各种变量和各种函数起名,这些变量名、函数名都是由语言的函数名都是由语言的基本符号基本符号
2、组成的。组成的。C的基本符号包的基本符号包括:括:(1)数字数字10个个(09);(2)英文字母英文字母大小写各大小写各26个个(AZ,az);(3)特殊符号特殊符号,主要用来表示运算符,它通常是,主要用来表示运算符,它通常是由由12个特殊符号组成。包括:个特殊符号组成。包括:+*/%=!=&|!&|=+-?:?:(),等等。等等。3.1.2 关键字 关键字关键字在语言中有特定的语法含义,用在语言中有特定的语法含义,用来说明某一固定含义的语法概念,程序员只来说明某一固定含义的语法概念,程序员只能使用,而不能给它们赋以新的含义能使用,而不能给它们赋以新的含义。表表3.1中列出了中列出了ANSI
3、C中的中的32个关键个关键字,主要是字,主要是C的语句名和数据类型名等。的语句名和数据类型名等。C语言中大写字母和小写字母是不同的,如语言中大写字母和小写字母是不同的,如else是关键字,而是关键字,而ELSE则不是。则不是。表表3.1 ANSI C中的中的32个关键字个关键字autodoublestructsizeofbreakelseintstaticcaseenumlongswitchcharexternregistertypedefconstfloatunsignedunioncontinueforreturnvoiddefaultgotoshortvolatiledoifsigned
4、while注意:注意:还有一些含有特定含义的标识符。它们还有一些含有特定含义的标识符。它们主要用在主要用在C语言的预处理程序中。这些标识语言的预处理程序中。这些标识符不是关键字,但因具有特定含义,建议符不是关键字,但因具有特定含义,建议读者不要在程序中把它们作为一般标识符读者不要在程序中把它们作为一般标识符随意使用,以免造成混乱。随意使用,以免造成混乱。特定字有特定字有define、undef、include、ifdef、ifndef、endif、line等。等。3.1.3 标识符 标识符用于标识符用于给程序中不同的语法概念以不同的命名给程序中不同的语法概念以不同的命名,以便,以便能区别它们。
5、如用来表示常量、变量、语句标号、用户自定义能区别它们。如用来表示常量、变量、语句标号、用户自定义的名称等等。程序中的标识符应满足的名称等等。程序中的标识符应满足C C语言的一些规定:语言的一些规定:(1)(1)以以英文字母或下划线英文字母或下划线“_”_”(下划线也起一个字母作用)(下划线也起一个字母作用)开头;开头;(2)(2)标识符的其它部分可以用字母、数字、下划线组成;标识符的其它部分可以用字母、数字、下划线组成;(3)(3)长度一般不超过长度一般不超过8 8个字符个字符。在不同的系统中有不同的规。在不同的系统中有不同的规定;定;(4)(4)大、小写字母含义不一样大、小写字母含义不一样,
6、例如:,例如:MAX,max,MaxMAX,max,Max均表示均表示不同的标识符;不同的标识符;(5)(5)不能用关键字不能用关键字作标识符。作标识符。下面列出几个正确和不正确的标识符:正确正确 不正确不正确 smart 5smart decision bomb?key_board keyboard FLOAT float注意:注意:为了使程序易读、易修改,标识符命名为了使程序易读、易修改,标识符命名应该选择恰当,尽量符合人们习惯,表示应该选择恰当,尽量符合人们习惯,表示有意义的标识符。一般取用英文单词、汉有意义的标识符。一般取用英文单词、汉语拼音作为标识符。作为习惯,一般约定语拼音作为标识
7、符。作为习惯,一般约定标识符常量标识符常量使用使用大写字母大写字母,其余均用小写,其余均用小写字母。字母。3.2 数据类型C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void定义类型定义类型typedef字符类型字符类型char枚举类型枚举类型enum整整 型型实型实型单精度型单精度型float双精度型双精度型double数组数组结构体结构体struct共用体共用体union短整型短整型short长整型长整型long整型整型int注意:注意:对不同的对不同的C语言系统,所支持的基本类型语言系统,所支持的基本类型是不同的,而且取值范围与机器硬件有关,是不同的
8、,而且取值范围与机器硬件有关,在使用时请参阅有关手册。在使用时请参阅有关手册。需要指出的是:需要指出的是:C语言没有提供布尔语言没有提供布尔(逻辑逻辑)类型,在逻辑运算中,它是以非零表示真类型,在逻辑运算中,它是以非零表示真(TRUE),以数值,以数值0表示假表示假(FALSE)。3.3 常量与变量 3.3.1 常量常量 C语语言言中中的的常常量量是是不不接接受受程程序序修修改改的的固固定定值值,常常量量可可为为任任意意 数据类型数据类型。1.整型常量整型常量 整形常量可分别以十进制、八进制、十六进制表示。整形常量可分别以十进制、八进制、十六进制表示。C语言语言的整常数有以下四种形式:的整常数
9、有以下四种形式:1).1).十进制整数十进制整数 形式:形式:n n 其中其中n n是数字是数字0909组成的序列,组成的序列,中间不允许出现逗号中间不允许出现逗号,规定,规定最最高位不能是高位不能是0 0,当符号为正时可以省略符号,当符号为正时可以省略符号“+”+”,“-”-”表示负数。表示负数。例例:123123、-1000-1000、-1-1都都 表示十进制整数。表示十进制整数。而而:1.2341.234、10-210-2、10/310/3、01230123是非法的十进制整数。是非法的十进制整数。2).八进制整数八进制整数 形式:形式:士士0n 其中其中0表示八进制数的引导符,表示八进制
10、数的引导符,不能省略不能省略,n是数是数字字07组成的序列,当符号为正时可以省略组成的序列,当符号为正时可以省略“+”,“-”表示负数。特别要注意的是,八进制整数的引导表示负数。特别要注意的是,八进制整数的引导符是数字符是数字0,而不是字母,而不是字母O。例例:0123、01000、01都是表示八进制整数。都是表示八进制整数。而而:012889、123、670是非法的八进制整数。是非法的八进制整数。3).十六进制整数十六进制整数 形式:形式:士士0 xn /*0是数字是数字0,而不是字母,而不是字母O*/其中其中0 x表示十六进制数的引导符,表示十六进制数的引导符,不能省略不能省略。n是是09
11、、af或或AF的数字、字母序列。当符号为正时的数字、字母序列。当符号为正时可以省略可以省略“+”;“-”表示负数。一般前面的字母表示负数。一般前面的字母x小小写,后面的写,后面的AF也应小写,或者全部大写。也应小写,或者全部大写。af或或AF分别表示数字分别表示数字1015。例例:0 x12c、0 x100、0XFFFF都是表示十六进都是表示十六进制整型数。制整型数。4).长整型整数长整型整数 前面几种表示形式的整型是基本整型,但对于前面几种表示形式的整型是基本整型,但对于超过基本整型取值范围的整数,可以在数字后加字超过基本整型取值范围的整数,可以在数字后加字母母L或或l,表示,表示长整型整数
12、长整型整数。从表。从表3.2可以看到,长可以看到,长整型数据的表示范围比基本整型的表示范围大的多。整型数据的表示范围比基本整型的表示范围大的多。例例:123456L、07531246L、0XFFFFFFL分别表示十进制长整型整数、八进制分别表示十进制长整型整数、八进制长整型整数、十六进制长整型整数。长整型整数、十六进制长整型整数。2.2.实型常量实型常量 实型常量实型常量又称又称浮点常量浮点常量,是一个十进制表示的,是一个十进制表示的符号实数。符号实数的值包括符号实数。符号实数的值包括整数部分整数部分、尾数部分尾数部分和和指数部分指数部分。实型常量的形式如下:。实型常量的形式如下:digits
13、.digits E|e+|-digits 在此在此digits是一位或多位十进制数字(从是一位或多位十进制数字(从09)。)。E(也可用(也可用e)是指数符号。小数点之前是整)是指数符号。小数点之前是整数部分,小数点之后是尾数部分,它们是可省略的。数部分,小数点之后是尾数部分,它们是可省略的。小数点在没有尾数时可省略。指数部分用小数点在没有尾数时可省略。指数部分用E或或e开开头,幂指数可以为负,当没有符号时视为正指数的头,幂指数可以为负,当没有符号时视为正指数的基数为基数为10。注意:注意:所有的实型常量均视为所有的实型常量均视为双精度类型双精度类型。实型常。实型常量的整数部分为量的整数部分为
14、0时可以省略,如下形式是允时可以省略,如下形式是允许的:许的:.57,.0075e2,-.125,-.175E-2;字母字母E或或e之前必须有数字之前必须有数字,且,且E或或e后面指数后面指数必须为整数必须为整数:如如e3,.e3,e等都是不合法的指数形式。等都是不合法的指数形式。3.字符常量字符常量 字符常量是指用一对单引号括起来的单个字符。如a,9,!。字符常量中的单引号只起定界作用并不表示字符本身。单引号中的字符不能是单引号()和反斜杠(),它们特有的表示法在转义字符中介绍。在C语言中,字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。注意:注意:注意字符 9 和数字9的区别
15、,前者是字符常量,后者是整型常量,它们的含义和在计算机中的存储方式都截然不同。由于C语言中字符常量是按整数(short型)存储的,所以字符常量可以像整数一样在程序中参与相关的运算。例如:9 9;/*执行结果57-9=48*/4.字符串常量字符串常量 字符串常量是指用一对双引号括起来的字符串常量是指用一对双引号括起来的一串字符。一串字符。双引号只起定界作用双引号只起定界作用,双引号括,双引号括起的字符串中不能是双引号(起的字符串中不能是双引号()和反斜杠)和反斜杠(),它们特有的表示法在转义字符中介),它们特有的表示法在转义字符中介绍。绍。注意:注意:C语言中,字符串常量在内存中存储时,系统自动
16、在字符串的末尾加一个“串结束标志”,即ASCII码值为0的字符NULL,常用 0表示。因此在程序中,长度为n个字符的字符串常量,在内存中占有n+1个字节的存储空间。例如,字符串China其存储形式为:要特别注意字符串与字符串常量的区别,除了表示形式不同外,其存储性质也不相同,字符A只占1个字节,而字符串常量A占2个字节。CHINANULL5.转义字符转义字符 转义字符是转义字符是C语言中语言中表示字符的一种特殊形表示字符的一种特殊形式。通常使用转义字符式。通常使用转义字符表示表示ASCII码字符集中码字符集中 不可打印的控制字符和不可打印的控制字符和特定功能的字符。特定功能的字符。转义转义字符
17、字符意意义义A S C I I码值码值(十(十进进制)制)a响响铃铃(B E L)0 0 7 b 退格退格(B S)0 0 8 f 换页换页(F F)0 1 2 n 换换行行(L F)0 1 0 r回回车车(C R)0 1 3 t 水平制表水平制表(H T)0 0 9 v 垂直制表垂直制表(V T)0 11 反斜杠反斜杠0 9 2?问问号字符号字符0 6 3 单单引号字符引号字符0 3 9 双引号字符双引号字符0 3 4 0 空字符空字符(N U L L)0 0 0 d d d任意字符任意字符三位八三位八进进制制 x h h 任意字符任意字符二位十六二位十六进进制制注意:注意:转义字符中只能使
18、用小写字母,每个转义字符只能转义字符中只能使用小写字母,每个转义字符只能看作一个字符。看作一个字符。v 垂直制表和垂直制表和f 换页符对屏幕没有任何影响,但会换页符对屏幕没有任何影响,但会影响打印机执行相应操作。影响打印机执行相应操作。在在C程序中,使用不可打印字符时,通常用转义字符程序中,使用不可打印字符时,通常用转义字符表示。表示。6.符号常量符号常量 C语言允许将程序中的常量定义为一个标识符,称语言允许将程序中的常量定义为一个标识符,称为为符号常量符号常量。符号常量一般使用大写英文字母表示,以。符号常量一般使用大写英文字母表示,以区别于一般用小写字母表示的变量。符号常量在使用前区别于一般
19、用小写字母表示的变量。符号常量在使用前必须先定义,定义的形式是:必须先定义,定义的形式是:#define 例如:例如:#define PI 3.1415926#define是是C语言的语言的编译预处理命令编译预处理命令,它表示经,它表示经定义的符号常量在程序运行前将由其对应的常量替换。定义的符号常量在程序运行前将由其对应的常量替换。其其值值可可以以改改变变的的量量称称为为变变量量。一一个个变变量量应应该该有有一一个个名名字字(标标识识符符),在在内内存存中中占占据据一一定定的的存存储储单单元元,在在该该存存储储单单元元中中存存放放变变量量的的值值。请请注注意意区区分分变变量量名名和和变变量量值
20、值这这两两个个不不同同的的概概念念。所所有有的的C变变量量必必须须在在使使用用之之前前定定义义。定义变量的一般形式是:定义变量的一般形式是:type variable_list;这里的这里的type必须是有效的必须是有效的C数据类型,数据类型,variable_list(变量表)可以由一个或多个由逗号分变量表)可以由一个或多个由逗号分隔的多个标识符名构成。例如:隔的多个标识符名构成。例如:int i,j,l;/定义三个整型变量定义三个整型变量i,j,l 3.3.2 变量1.整型变量整型变量 main()int a,b,c,d;/*指定指定a,b,c,d 为整型变量为整型变量*/unsigned
21、 u;/*指定指定u为无符号整型变量为无符号整型变量*/a=22;b=-11;u=5;c=a+u;d=b+u;printf(a+u=%d,b+u=%dn”,c,d);运行结果为:运行结果为:a+u=27,b+u=6 可以看到不同类型的整型数据可以进行算术运算。在本例中是可以看到不同类型的整型数据可以进行算术运算。在本例中是int型数据与型数据与unsingned int型数据进行相加减运算。型数据进行相加减运算。2.实型变量实型变量 实型变量分为实型变量分为单精度单精度(float型)和型)和双精度双精度(double型)。型)。如:如:float x,y;/*指定指定x,y为单精度实数为单精
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 数据类型 表达式
限制150内