C语言的运算符非常丰富,能够组成不同的类型的表达式。
比如:
1+2*3-10
其中,1、2、3和10称为操作数,+、*和-称为运算符。
上面的表达式先进行*运算,再进行+运算和-运算,这是因为运算符的优先级不同,*的优先级高于+和-,所以先进行*运算。
进行-运算时,是7减10,而不是10减7,这是由运算符的结合性决定的,-运算符的结合性是从左到右。
运算符不仅具有不同的优先级,还有不同的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。
C语言的运算符可分为以下几类,见表2-9所示:
表2-9运算符的类型说明
表达式是由常量、变量、函数和运算符组合起来的式子。一个表达式有一个值及其类型,它们分别是计算表达式所得结果的值和类型。表达式求值按运算符的优先级和结合性规定的顺序进行,单个的常量、变量、函数可以看作是表达式的特例。C语言中各运算符的优先级和结合性见附录C。
1.一般算术运算符
C语言基本算数运算符如表2-10所示:
表2-10基本运算符
双目运算符+和-具有相同的优先级,它们的优先级比运算符*、/和%的优先级低,而运算符*、/和%的优先级又比单目运算符-(负号)的优先级低。
除法运算符
#includestdio.h
intmain()
{
printf(\n\n%d,%d\n,20/7,-20/7);
printf(%f,%f\n,20.0/7,-20.0/7);
return0;
}
程序运行结果:
2,-2
2.,-2.
本例中,20/7,-20/7的结果均为整型,小数全部舍去。而20.0/7和-20.0/7由于有实数参与运算,因此结果也为实型。
取余运算符
#includestdio.h
intmain()
{
printf(%d\n,%3);
return0;
}
程序运行结果:
1
本例输出除以3所得的余数1。
2.自增、自减运算符
自增运算符(++)和自减运算符在C语言中使用比较频繁,这两个运算符有一个共同的特点,就是它们既可以出现变量的左边,构成前置++/--,又可以出现在变量的右边,构成后置++/--。
前置++/--的语法规则:现将变量的值加1/减1,再使用该变量。
后置++/--的语法规则:先使用该变量,再将变量的值加1/减1。
使用自增、自减运算符
#includestdio.h
intmain()
{
inti=8;
printf(%d\n,++i);
printf(%d\n,--i);
printf(%d\n,i++);
printf(%d\n,i--);
printf(%d\n,-i++);
printf(%d\n,-i--);
return0;
}
程序运行结果:
9
8
8
9
-8
-9
i的初值为8,第4行i加1后输出故为9;第5行减1后输出故为8;第6行输出i为8之后再加1(为9);第7行输出i为9之后再减1(为8);第8行输出-8之后再加1(为9),第9行输出-9之后再减1(为8)。
3.逗号运算符
在C语言中逗号“,”也是一种运算符,称为逗号运算符,其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:
表达式1,表达式2;
其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。
逗号运算符举例
#includestdio.h
intmain()
{
inta=2,b=4,c=6,x,y;
y=(x=a+b,b+c);
printf(y=%d,x=%d\n,y,x);
return0;
}
程序运行结果:
y=10,x=6
本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。
对于逗号表达式还要说明三点:
(1)逗号表达式一般形式中的表达式1和表达式2也可以又是逗号表达式。
例如:
表达式1,(表达式2,表达式3)
形成了嵌套情形,因此可以把逗号表达式扩展为以下形式:
表达式1,表达式2,…表达式n
整个逗号表达式的值等于表达式n的值。
(2)程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
(3)并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个