C语言-表达式和运算符

时间:2021-12-22 01:43:37
  • 表达式:表达式是c语言的主体,在c语言中,表达式由操作符和操作数组成。简单的表达式可以只有一个操作数。根据操作符的个数,可以将表达式分为简单表达式和复杂表达式,简单的表达式只含有一个操作符(如:5+5),而复杂的表达式则含有两个或者两个以上的操作符(如5+5+6*4);表达式是本身什么事情也不做,只是返回结果的值,在程序不多结果值做任何处理的情况下,返回的结果值不起任何作用;表达式产生的作用有两种情况:(1)放在赋值语句的右侧;(2)放在函数的参数中。
  • 赋值运算符和赋值表达式:“=”就是赋值运算符,其作用是将一个数据赋值给一个变量。变量的赋初值(int iNumber=12;char cMyChar=‘a’;int iAmount=1+2)。
  • 自动类型转换:低级数据向高级转换,低级数据会变高级,数据不会失真;高级数据向低级数据转换时,数据级别会降低,并且会发生截断(如float fMum=1.02f;int j=i)。
  • 强制类型转换:如float i=1.01f;int j=(int)i;
#include<stdio.h>
int main()
{
char cChar; /*字符型变量*/
short int iShort; /*短整型变量*/
int iInt; /*整形变量*/
float fFloat=70000; /*浮点型变量*/
cChar
=(char)fFloat; /*强制赋值转换*/
iShort
=(short)fFloat;
iInt
=(int)fFloat;
printf(
".........");
return 0;
}
  • 算数运算符和表达式:单目运算符(正,负);双目运算符(乘法,除法,取模,加法,减法);优先级分别是(单目运算符,乘法、除法、取模,加法、减法)。
  • 算术表达式:含有算术运算符的表达式。
  • 算术运算符的结合性:当算术运算符的优先级相同的时候,结合方向是自左向右(如a-b+c)。
  • 自增自减运算符:自增运算符“++”和自减运算符“--”。自增运算符和自减运算符对变量的操作分别是增加1和减少1;
int a=1,b=1,c;
c
=++a;//c的值为2,a的值为2
c=b++;//c的值为1,b的值为2
//当自增自减运算符在变量的前面时,变量在参加表达式之前就完成了自增或者自减运算;
//当放在后面时,变量在参加表达式之后完成自增或自减;
  • 关系运算符和表达式:关系运算符的作用就是判断两个操作数的大小关系,关系运算符包括:>,>=,<,<=,==,!=。优先级和结合性:关系运算符的结合性是自左向右的。
  • 逻辑运算符和表达式:逻辑运算符根据表达式的真或者假属性返回其真值或者假值;逻辑运算符包括逻辑与(&&),逻辑或(||),单目逻辑非(!);优先级和结合性:自左向右的结合性,优先级从高到低依次为:单目逻辑非运算符“!”,逻辑与运算符“&&”,逻辑或运算符“||”。
  • 位逻辑运算符和表达式:位运算符是C语言中比较有特色的内容。位逻辑运算符可以实现位的设置、清零、取反和取补操作。利用位运算可以实现很多汇编语言才能实现的功能。为逻辑运算符包括:位逻辑与“&”,位逻辑或“|”,位逻辑非“^”,取补”~“;在程序中,位逻辑运算符一般被程序员用作开关标志。较低层次的硬件设备驱动程序,经常需要对输入输出设备进行为操作。
  • 逗号运算符和表达式:在c语言中,可以用逗号将多个表达式分隔开来。其中,用逗号分开的表达式分别计算,并且整个表达式的值就是最后一个表达式的值。逗号表达式称为顺序求值运算符,逗号表达式的一般形式是:表达式1,表达式2,表达式3,...,表达式n;逗号表达式的求解思路是:先求表达式1,再求表达式2,已知求解到表达式n。整个逗号表达式的值是表达式n的值。如:Value=2+1,5+3,4+5;若按照上述说法,Value的值应该为9,但是实际上Value的值为3,因为还涉及到一个运算符的优先级问题,赋值运算符优先级大于逗号运算符。但是Value=(2+1,5+3,4+5);的Value的值就是9了。
  • 复合赋值运算符:符合运算符是C原因中独有的,实际这是一种操作的做些形式,可使得变量的操作描述方式更为简洁;如Value+=3;实际就是Value=Value+3;
  • 运算符的优先级表如下:

C语言-表达式和运算符

C语言-表达式和运算符