文档详情

基本数据类型、运算符和表达式.ppt

发布:2025-04-01约1.18万字共10页下载文档
文本预览下载声明

2.3.1运算符*第1章C语言程序设计基础2章基本数据类型、运算符和表达式*8.求字节数运算符sizeof是C语言的一种单目操作符,并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。sizeof可以用于数据类型和变量。关于sizeof的结果:①操作数具有类型char、unsignedchar或signedchar,其结果等于1。因为ANSIC正式规定字符类型为1字节。②int、unsignedint、shortint、unsignedshort、longint、unsignedlong、float、double、longdouble类型的sizeof在ANSIC中没有具体规定,大小依赖于实现,一般可能分别为2、2、2、2、4、4、4、8、10。2.3.1运算符*第1章C语言程序设计基础2章基本数据类型、运算符和表达式*9.逗号运算符用逗号运算符可以将两个表达式连接起来,所形成的就是逗号表达式,其一般形式为:表达式1,表达式2逗号表达式的求值过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,…,表达式n表达式n的值为整个表达式的值。2.3.1运算符*第1章C语言程序设计基础2章基本数据类型、运算符和表达式*10.条件运算符条件运算符是三目运算符,要求有3个操作对象,并且三个操作对象都是表达式。条件表达式的其一般形式为:表达式1?表达式2:表达式3条件运算的求值规则为:计算表达式1的值,若表达式1的值为真,则以表达式2的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。注意:(1)条件表达式中,表达式1通常为关系或逻辑表达式,表达式2、3的类型可以是数值表达式、赋值表达式、函数表达式或条件表达式。(2)条件表达式的结果类型:表达式2和表达式3中的较高者。2.3.2表达式**第1章C语言程序设计基础2章基本数据类型、运算符和表达式表达式由运算符和操作数构成。操作数可以是常量和变量。表达式的类型就是表达式计算结果的类型。混合于同一表达式中的不同类型常量及变量,应均变换为同一类型的量。C语言的编译程序将所有操作数变换为与最大类型操作数同类型。2.3.2表达式*第1章C语言程序设计基础2章基本数据类型、运算符和表达式*C语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。若一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方向”处理。C规定了各种运算符的结合方向。算术运算符的结合方向为“自左至右”,又成为左结合性,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性。关系运算符的优先级低于算术运算符,关系运算符中、=、、=优先级相同;!=和==的优先级相同,但低于前四种。关系运算符的结合性均为左结合,若有多个关系运算同时进行时,先按优先级次序运算,优先级相同时从左向右计算。2.3.2表达式**第1章C语言程序设计基础2章基本数据类型、运算符和表达式逻辑运算符中,非运算符(!)和单目的算术运算符同级,高于双目的算术运算符,优先于关系运算符,优先于逻辑运算符与()和或(||),与()运算高于或(||)运算。逻辑运算符中,非运算符(!)的结合性为右结合;与运算()和或运算(||)的结合性为左结合。条件运算符的优先级低于关系运算符和算术运算符,高于赋值运算符。因此,表达式max=(ab)?a:b可以去掉括号,写为max=ab?a:b,执行时意义是相同的。条件运算符的结合方向是自右至左。2.3.2表达式**第1章C语言程序设计基础2章基本数据类型、运算符和表达式赋值运算符和复合赋值运算符的优先级相同,且都具有右结合性。它们的优先级除了比逗号运算符的优先级高以外,比其它运算符的优先级都低。逗号运算符是所有运算符中级别最低的。例如:逗号表达式:x=2,4*5运算时,先算第一个赋值表达式x=2,再算算术表达式4*5,最后算整个逗号表达式的值。逗号表达式的值为算术表达式的值20。*第1章C语言程序设计基础2章基本数据类型、运算符和表达式*2.1数据类型历史和特点2.2变量和常量2.3运算符和表达式第2

显示全部
相似文档