第2章数据类型、运算符与表达式_第1页
第2章数据类型、运算符与表达式_第2页
第2章数据类型、运算符与表达式_第3页
第2章数据类型、运算符与表达式_第4页
第2章数据类型、运算符与表达式_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计第第2 2章章 数据类型、运算符与表达式数据类型、运算符与表达式&前言前言8常量和变量常量和变量,属程序操作的对象,属程序操作的对象&程序运行时其值不能改变的量程序运行时其值不能改变的量, ,称为常量,包括字面称为常量,包括字面常量和符号常量常量和符号常量&程序运行时程序运行时其值可以改变的量,称为变量其值可以改变的量,称为变量8符号常量和变量需命名,名称又称标识符。符号常量和变量需命名,名称又称标识符。标识符命名标识符命名需满足一定的规则。需满足一定的规则。8常量和变量的常量和变量的数据类型数据类型需指明,亦即说明它是整型、实需指明,亦即说明它是整型、实

2、型、字符型或其它类型。型、字符型或其它类型。8程序中,常量或变量是需要参与运算的,因此需要掌握程序中,常量或变量是需要参与运算的,因此需要掌握运算符及表达式运算符及表达式。C语言程序设计2.1 数据类型数据类型&数据类型总表数据类型总表C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型typedef (用别名来代替已有的类型名用别名来代替已有的类型名)字符类型字符类型char枚举类型枚举类型enum整整 型型实型实型单精度型单精度型float双精度型双精度型double数组数组结构体结构体struct共用体共用体union短整型短整型short长整型长整型long整型整

3、型int数据类型决定:数据类型决定:1. 数据占内存字节数数据占内存字节数2. 数据取值范围数据取值范围3. 其上可进行的操作其上可进行的操作空类型空类型 voidC语言程序设计&基本数据类型基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float32-3.4e-3

4、83.4e38有double64-1.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同。C语言程序设计2.22.2常量与变量常量与变量v标识符是字符序列的总称。标识符是字符序列的总称。v标识符可用来标识常量、变量、函数等的名字。标识符可用来标识常量、变量、函数等的名字。vC C语言中,标识符可分为:语言中,标识符可分为:用户自定义标识符用户自定义标识符标准标识符标准标识符( (又称关键字,由系统专用又称关键字,由系统专用) )v用户自定义标识符须符合以下规范:用户自定义标识符须符合以下规范:由字母由字母(A-

5、Z,a-z)(A-Z,a-z)、数字、数字(0-9)(0-9)和下划线和下划线(_)(_)组成组成第一个字符不能是数字字符第一个字符不能是数字字符不能是关键字不能是关键字C语言程序设计补充:补充: C语言的字符集语言的字符集 字符是组成语言的最基本的元素。语言字符集由字母,数字,空格,字符是组成语言的最基本的元素。语言字符集由字母,数字,空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。或其它可表示的图形符号。& 1.字母字母 小写字母小写字母az共共26个个 大写字母大写字母A

6、Z共共26个个& 2.数字数字 09共共10个个& 3.空白符空白符 空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,编译程序对它们忽串常量中起作用。在其它地方出现时,只起间隔作用,编译程序对它们忽略不计。因此在程序中使用空白符与否,对程序的编译不发生影响,但在略不计。因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性。程序中适当的地方使用空白符将增加程序的清晰性和可读性。& 4.标点和特殊

7、字符标点和特殊字符C语言程序设计补充:补充: C语言词汇语言词汇 在语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,在语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,常量,注释符等。常量,注释符等。& 1. 标识符标识符 & 2. 关键字关键字& 3. 运算符运算符& 4. 分隔符分隔符& 5. 常量常量& 6. 注释符注释符 在程序中使用的变量名、函数名、标号等统称为标识符。 除库函数的函数名由系统定义外,其余都由用户自定义。 C 规定,标识符只能是字母(AZ,az)、数字(09)、下划线(_)组成的字符串,并且其第一个字符

8、必须是字母或下划线。即以下标识符是非法的: 3s 以数字开头 s*T 出现非法字符* -3x 以减号开头 bowy-1 出现非法字符-(减号) 在使用标识符时还必须注意以下几点: (1) 标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。 (2) 在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。 (3) 标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,做到“顾名思义”。 关键字是由

9、语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。 语言的关键字分为以下几类: : (1) 类型说明符 用于定义、说明变量、函数或其它数据结构的类型,如例题中用 int 等 。 (2) 语句定义符 用于表示一个语句的功能,如实例2中用到的 if 就是条件语句的语句定义符。 (3) 预处理命令字 用于表示一个预处理命令,如实例中用到的include。 语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成(详见第3章3.8节)。 语言中采用的分隔符有逗号和空格两种。 逗号:主要用在类型说明和函数参数表中,分隔各

10、个变量。 空格:多用于语句各单词之间,作间隔符。 在关键字,标识符之间必须要有一个以上的空格符作间隔,否则将会出现语法错误,例如把int a;写成 inta; C编译器会把inta当成一个标识符处理,其结果必然出错。 C 语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。在后面章节中将专门给予介绍。 C 语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。 注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不作处理,待调试结束

11、后再去掉注释符。C语言程序设计v一般用大写字母一般用大写字母v是宏定义预处理命令,不是是宏定义预处理命令,不是C语句语句直接常量直接常量: :v整型常量整型常量 v实型常量实型常量 v字符常量字符常量 v字符串常量字符串常量如 #define PRICE 30 2.22.2常量与变量常量与变量&常量常量v定义:程序运行时其值不能改变的量(即常数)定义:程序运行时其值不能改变的量(即常数)v分类分类: : 包括符号常量和直接常量包括符号常量和直接常量符号常量符号常量: :用标识符代表常量用标识符代表常量v定义格式:定义格式: #define#define 符号常量符号常量 常量常量 例例

12、 符号常量举例符号常量举例#define PRICE 30#define PRICE 30#include #include “stdio.hstdio.h”void main()void main() int num,total; int num,total; num=10; num=10; total=num total=num* *PRICE;PRICE; printf(total=%d,total); printf(total=%d,total); 运行结果:total=300C语言程序设计&整型常量(整常数)整型常量(整常数)v三种形式:三种形式:十进制整数:由数字十进制整数

13、:由数字0 09 9和正负号表示和正负号表示. .如如 123,-456,0123,-456,0八进制整数:由数字八进制整数:由数字0 0开头开头, ,后跟数字后跟数字0 07 7表示表示. .如如0123,0110123,011十六进制整数:由十六进制整数:由0 x0 x开头开头, ,后跟后跟0 09,a9,af,Af,AF F表示表示. . 如如0 x123,0 xff0 x123,0 xff例 12 与 12L例 30000 为int型 65536 为long int 型v整型常量的类型整型常量的类型根据其值所在范围确定其数据类型根据其值所在范围确定其数据类型在在整常量后加字母整常量后加

14、字母l l或或L L,认为它是认为它是long int 型常量型常量问题:0123 = ( )100 x123 = ( )100 xff = ( )1083291255问题:0123 = ( )100 x123 = ( )100 xff = ( )10C语言程序设计&实型常量(实数或浮点数)实型常量(实数或浮点数)v表示形式:表示形式:十进制数形式:(必须有小数点)十进制数形式:(必须有小数点) 如如0.123, .123, 0.123, .123, 123.0, 0.0, 123.123.0, 0.0, 123.指数形式:(指数形式:(e e或或E E之前必须有数字;指数必须为整数)

15、之前必须有数字;指数必须为整数)如如12.312.3e3 ,123E2, 1.23e4 , e3 ,123E2, 1.23e4 , e-5e-5 , , 1.2E-3.5 1.2E-3.5 v实型常量的类型实型常量的类型默认默认doubledouble型型在在实型常量后加字母实型常量后加字母f f或或F F,认为它是认为它是float float 型型C语言程序设计&字符常量字符常量v定义定义: :用用单引号单引号括起来的单个括起来的单个普通字符普通字符或或转义字符转义字符. v字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码码值值如 a A ? n 101-* *

16、/ % / % - - + -+ - (2) (3) (4)(2) (3) (4)说明:说明:“- -”可为可为单目单目运算符时运算符时, ,右结合性右结合性两整数相除,结果为整数;实数相除,结果为实数两整数相除,结果为整数;实数相除,结果为实数% %要求两侧均为整型数据要求两侧均为整型数据例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()C语言程序设计v自增、自减运算符自增、自减运算符+ -+ -作用:使变量值

17、加作用:使变量值加1 1或减或减1 1种类:种类:v前置前置 +i, -i (+i, -i (先执行先执行i i+1+1或或i-1i-1,再使用再使用i i值)值)v后置后置 i+,i- (i+,i- (先使用先使用i i值值, ,再执行再执行i i+1+1或或i-1i-1)例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); /k=4,j=4/k=3,j=4/4/3说明:说明:v+ - + - 不能用于常量和表达式不能用于常量和表达式, ,如如5+5+,( (a+b)+a+b)+v+ -+ -结合方向:结合方向

18、: 自右向左自右向左v优先级:优先级:- + - - + - -* * / % -+ - / % -+ - (2) (3) (4)(2) (3) (4)例 i=3; printf(%dn,-i+); /-3 C语言程序设计&赋值运算符和表达式赋值运算符和表达式v简单赋值运算符简单赋值运算符符号:符号: = =格式:格式: 变量标识符变量标识符= =表达式表达式作用:将一个数据(常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量v复合赋值运算符复合赋值运算符种类种类:+= -= += -= * *= /= %= /= %= = = = &= = |= &

19、;= = |=含义:含义: exp1 op= exp2exp1 op= exp2 exp1 = exp1 op exp2exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; d=func(); c=d+2;C语言程序设计v说明说明: :结合方向:结合方向:自右向左自右向左优先级优先级: 14左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套赋值转换赋值转换规则规则: :使赋值号右边表达式值使赋值号右边表达式值自动自动转换成其左边转换成其左边变量

20、的类型变量的类型例 3=x-2*y; a+b=3;例 float f; int i; i=10; f=i;则 f=10.0例 int i; i=2.56; /结果i=2;例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表达式值为5,a,b,c值为5/ b=5;a=5/表达式值11,c=6,a=11/表达式值10,a=10,b=4,c=6/表达式值5,a=5,b=10,c=2C语言程序设计v说明说明: :结合方向:结合方向:自右向左自右向左优先级优先级: 12左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式赋

21、值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套赋值转换赋值转换规则规则: :使赋值号右边表达式值使赋值号右边表达式值自动自动转换成其左边转换成其左边变量的类型变量的类型例: a=12; a+=a-=a*a例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=-264 等价于a=a+(a=a-(a*a)/a=0 等价于a=a+(a=a*(a=a-(a=a*3)C语言程序设计&逗号运算符和表达式逗号运算符和表达式v形式:形式:表达式表达式1,表达式表达式2,表达式表达式nv结合性结合性:从左向右从左向右v优先级优先级: 15v逗号表达式逗号表达式的值:等于表达式的值:等于表达式n的值的值例 a=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论