《C语言程序设计课件第03讲》由会员分享,可在线阅读,更多相关《C语言程序设计课件第03讲(18页珍藏版)》请在金锄头文库上搜索。
1、*1Program Design in C LanguagePage 基本运算符及其表达式第三讲第二章 数据类型、运算符和表达式*2Program Design in C LanguagePage本节 介绍24 基本运算符及其表达式算术运算符赋值运算符逗号运算符逻辑运算符条件运算符求字节运算符位逻辑运算符位移动运算符位自反运算符强制类型转换运算符指针运算符下标运算符分量运算符基本运算符位运算符特殊运算符C运算符*3Program Design in C LanguagePage24 基本运算符及其表达式2.4.1 算术运算符与算术表达式1.基本算术运算符右结合2+正右结合2-负左结合3/除左结
2、合3%取 模344优 先 级左结合*乘左结合-减左结合+加结合性运 算 符含 义C基本算术运算符例: 19/5 结果为3 (整数相除截去余数。) 22%4 结果为2 (取模运算返回余数。)*4Program Design in C LanguagePage24 基本运算符及其表达式2.自增自减运算符含义运算符优先级结合性功能自增+2右结合使变量的值增1自减-2右结合使变量的值减1使用形式 +i或-i 变量i先自增或自减1,再使用。 i+或i- 先使用变量i,再自增或自减1。 C自增自减运算符#include void main() int i=6, a, b;printf(“%dn“, +i)
3、;printf(“%dn“, i+);a=-i; printf(“%dn“, a);b=i-; printf(“%dn“, b);printf(“%dn“, -i+);printf(“i=%dn“, i); 例:7 7 7 7 -6i = ?*5Program Design in C LanguagePage在表达式中当多个运算符相连时,应自左而右地将若干个字符组成一个运算符。24 基本运算符及其表达式#include void main( )int i, j, k ;i=1;j=1;k=i+j ;printf(“i=%d,j=%d,k=%dn“,i,j,k);例:k=(i+)+j;i=2,j
4、=1,k=2*6Program Design in C LanguagePage3 算术表达式由算术运算符和括号将运算对象(如常量、变量、函数等)连接起来 的一个有值的式子。 数学式C语言算术表达式(a+b)/(c+d)sqrt(a)+sqrt(b)x+y-z例:说明: 表达式的类型为该表达式值的类型。 表达式的求值顺序:先按运算符的优先级执行,当一个运算对象 两侧的运算符优先级别相同时,则按结合性处理。24 基本运算符及其表达式2(a+b) 2*(a+b)*7Program Design in C LanguagePage24 基本运算符及其表达式2.4.2 关系运算符与关系表达式关系运算(
5、比较运算) 即比较两个量的大小,比较的结果为“真”或“假”。例:a3如果a=8,则结果为“真”;如果a=1,则结果为“假”。1.关系运算符含义运算符优先级结合性小于6左结合大于等于=6左结合等于=7左结合 不等于!=7左结合C关系运算符*8Program Design in C LanguagePage2.关系表达式 用关系运算符将两个表达式连接起来的式子。24 基本运算符及其表达式一般形式:其中:表达式1和表达式2可以是任何表达式。ab m+nz)=(yz) ijk例:*9Program Design in C LanguagePageC语言没有逻辑型数据。因此,在返回逻辑值时: 用1表示“
6、真”,用0表示“假”;在判断逻辑值时: 用非0代表“真”,用0代表“假”。24 基本运算符及其表达式例:#include void main() int a=15,b=18,c=10;printf(“%d,%d,%dn“,ab,abc); 0,1,0*10Program Design in C LanguagePage2.4.3 逻辑运算符与逻辑表达式关系表达式只能表达一些简单的关系,如: sum=1500 y!=z 即只能对一个条件进行测试。而以下关系:20x100 则不能用关系表达式表达。逻辑非!真值表1.逻辑运算符 C逻辑运算符: 含义运算符优先级结合性逻辑非!2右结合逻辑与一般形式:
7、?:*14Program Design in C LanguagePage赋值运算符优先级为14,仅高于逗号运算符,而低于其他所有运算符。2.4.5 赋值运算符与赋值表达式简单赋值运算符为“=”;由“=”连接的式子称为(简单)赋值表达式。一般形式:=1简单赋值运算符和简单赋值表达式d=25 c=a+b z=sqrt(x)+sqrt(y) k=i+-j x=(a=5)+(b=8)例:赋值运算符为右结合性a=b=c=d=10 a=(b=(c=(d=10)24 基本运算符及其表达式*15Program Design in C LanguagePage赋值运算的类型转换,规则为:整型数据赋给字符型时,
8、只把低8位赋给字符变量。字符型数据赋给整型变量时,整型变量的高八位补0,低八位取 字符的ASCII码值。整型数据赋给实型变量时,以浮点形式取值。实型数据赋给整型变量时,只取整数部分。 如: K=8.88 (k值为8)如: f=15 (f值为15.000000)如: K=A (k值为65)如: C=578 (C值为字母B)24 基本运算符及其表达式*16Program Design in C LanguagePage2复合赋值运算符和复合赋值表达式复合赋值运算符是在简单赋值运算符前加双目运算符构成。共以下10种:+=,-=,*=,/=,%=,=,y=(c=a*b),(b+c);printf(“y=%dn“,y); 例:y=12程序中并非所有出现逗号的地 方都组成逗号表达式。 如: int a=2,b=4,c=6,x,y; printf(“y=%d, x=%d“, y, x); /* 分隔符 */*18Program Design in C LanguagePage上机实验内容:实验教程第二章实验12。