C语言知识学习运算符.ppt
第三章,C语言运算符,回顾,变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 熟练使用 scanf() 和 printf() 函数,课程目标,算术运算符 增量运算符 逻辑运算符 关系运算符 按位运算符 C的特殊运算符 -“?” “ /*j的值为5,i的值为6*/ j=+i; /*j的值为6,i的值为6*/,赋值运算符,用于将表达式的值赋给变量。是一个双目运算符,运算符的左边必须是变量,右边是表达式,赋值运算符(用=表示),用于将表达式的值赋给变量,结合性是自右向左的。 例如:int i=5;是将常量值5赋给变量i. 赋值运算符=右侧可以是变量或表达式. 例如:int i=5,j=i;将变量i的值赋给变量j.,赋值语句中的数据类型转换,在赋值语句中,类型转换规则是:等号右边的值转换为等号左边变量所属的类型。 做除法运算时应特别注意 ,例如: int i=15; float f =i/2; 运行后,f=7而并不等于准确值7.5 正确的做法应该是: int i=15; float f =i/2.0; 也可直接将i定义为浮点数。,逻辑运算符和表达式,逻辑运算符种类: ! (逻辑非) int c=i3; /c=16/ 23 =2,C的特殊运算符,“?”运算符 “?”运算符是一个三目运算符,其一般形式是: ? : ; “?”运算符的含义是:先求表达式1的值,如果为真,则求表达式2的值并把它作为整个表达式的值;如果表达式1的值为假,则求表达式3的值并把它作为整个表达式的值。 int x, y; x=50; y=x70 ? 100 : 0 ; /y将被赋值0。 如果x=80,y将被赋值100。 “?”运算符可以代替某些if-else形式的语句。,例 x?a:b /x=0,表达式值为b; x0,表达式值为a xy?1:1.5 /xy ,值为1.0; x<y ,值为1.5,“ x=50; y=(x=x-5, x/5); 经过上面的语句后,y值为9,因为x的初始值为50,减5后变为45,45除5为9赋给y。,sizeof运算符,sizeof运算符 sizeof运算符是一个单目运算符,它返回变量或类型的 字节长度。 例如: sizeof(double) 为8 sizeof(int) 为2 也可以求已定义的变量, 例如: float f; int i; i=sizeof(f); 则i的值将为4。,C运算符的优先级,C规定了运算符的优先次序即优先级。 当一个表达式中有多个运算符参加运算时,将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低,同一行优先级相同。 例如: 表达式 104&&!(1004&&!(100<99)&&3<=5 的值为0,C运算符的优先级,表达式 优先级 ()(小括号) (数组下标) .(结构成员) 最高 -(指针型结构成员) ! (逻辑非) (位取反) -(负号) +(加1) -(减1) &(变量地址 ) * (指针所指内容) type(函数说明) sizeof(长度计算) * (乘) /(除) %(取模) + ( 加) -(减) (位右移) (大于) =(大于等于) =(等于) !=(不等于) &(位与) (位异或) | (位或) &&(逻辑与) | (逻辑或) ?: (?表达式) = += -=(联合操作) , (逗号运算符) 最低,本章总结,算术运算符 增量运算符 逻辑运算符 关系运算符 按位运算符 C的特殊运算符 -“?” “&”和“*”, “,” 运算符的优先级,