第3章表达式 (2)C语言的表达式只能使用C语言中合法的运算符 和操作数,对有些操作必须调用库函数完成,而且运算符 不能省略。例如 ①π2应写成3.14159**r。 absin a应写成05*a*b*sin(alph) ③K-y应写成abs(x-y ④y+2X应写成y+pow(2,x)
第 3章 表 达 式 (2) C语言的表达式只能使用C语言中合法的运算符 和操作数, 对有些操作必须调用库函数完成, 而且运算符 不能省略。例如: ① πr2应写成3.14159*r*r。 ② 应写成0.5*a*b*sin(alph)。 ③ |x-y|应写成fabs(x-y)。 ④ y+2X 应写成y+pow(2, x)。 absin a 2 1
第3章表达式 313表达式的分类 C语言表达式种类很多,有多种分类方法。我们一般 依据运算的特征将表达式分为 ①算术表达式,如a+b*2,0-30/50。 ②2关系表达式,如x>=y,关系表达式可以认为是逻辑表 达式的特殊情况。 ③逻辑表达式如(x>=2)&&(x<=8) ④赋值表达式,如a=b=c=1 ⑤条件表达式,如(a>b)?a:b ⑥逗号表达式,如a=2,b=a*a,c=sqrt(b)
第 3章 表 达 式 3.1.3 C语言表达式种类很多, 有多种分类方法。 我们一般 依据运算的特征将表达式分为: ① 算术表达式, 如a+b*2.0-3.0/5.0。 ② 关系表达式, 如x>=y, 关系表达式可以认为是逻辑表 达式的特殊情况。 ③ 逻辑表达式, 如(x>=2)&&(x<=8)。 ④ 赋值表达式, 如a=b=c=1。 ⑤ 条件表达式, 如(a>b)?a: b。 ⑥ 逗号表达式, 如a=2, b=a*a, c=sqrt(b)
第3章表达式 31逶舶级算 C语言将运算符的优先级划分为15级,初等运算() []、→、优先级最高,单目运算! 十十 (类型)、*、&、 sizeof优先级次高,算术运算+、 、/、%再次之,然后是关系运算<、 !〖KG-*4=、>>,再然后是逻辑运算&&、‖条 件运算式?:,赋值运算=、+ *=、/=、%=,逗号 运算优先级最低,位运算优先级比较分散
第 3章 表 达 式 3.1.4 1. 表达式的计算 C语言将运算符的优先级划分为15级, 初等运算( )、 [ ]、 →、 .优先级最高, 单目运算!、 ~ 、 ++、 --、 -、 (类型)、 * 、 &、 sizeof优先级次高, 算术运算+、 - 、 * 、 /、 % 再次 之 , 然 后是 关系 运算 <、 <=、 ==、 ![KG-*4]=、 >、 >=, 再然后是逻辑运算&&、 ||, 条 件运算式?: , 赋值运算=、 +=、 -=、 *=、 /=、 %=, 逗号 运算优先级最低,位运算优先级比较分散
第3章表达式 2.运算符的结合性 运算符的结合性是指,优先级相同的运算从左到右 进行(左结合性)还是从右至左进行(右结合性),左 结合性是人们习惯的计算顺序 C语言中,只有单目运算(! *、&)、条件运算(?:)、赋值运算(=、+= *=、/=、%=)的结合性是右结合,其余运算为左结合
第 3章 表 达 式 2. 运算符的结合性 运算符的结合性是指, 优先级相同的运算从左到右 进行(左结合性)还是从右至左进行(右结合性), 左 结合性是人们习惯的计算顺序。 C语言中, 只有单目运算(!、 ~ 、 ++、 --、 -、 * 、 &)、条件运算(?: )、赋值运算(= 、 +=、 -= 、 *= 、 /=、 %=)的结合性是右结合, 其余运算为左结合
第3章表达式 3类型转换 般讲相应的运算只有相应类型的数据才能进行 不同类型数据进行运算时,要进行类型转换。类型转换 有自动转换(又称隐含转换)与强制转换两种方式, (1)自动转换。 自动转换由系统自动完成,转换的规则如图3-1所示。 Int-→ signed→long→ double short char float 图3-1
第 3章 表 达 式 3. 一般讲相应的运算只有相应类型的数据才能进行, 不同类型数据进行运算时, 要进行类型转换。类型转换 有自动转换(又称隐含转换)与强制转换两种方式。 (1) 自动转换。 自动转换由系统自动完成, 转换的规则如图3-1所示。 Int usigned long double ↑ ↑ short,char float 图 3 - 1