一天一小步了解编程C语言丰富的运算符

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购买已下架

好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个


转载请注明:http://www.aierlanlan.com/cyrz/4448.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了