购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2-6 算术运算

2-6-1 基础算术运算符号

C语言算术运算基本符号如下。

1.加号

C语言符号是“+”,主要功能是将两个值相加。

实例1: 有一C语言指令如下:

s=a+b;

假设执行指令前,a=10,b=15,s=20;

则执行指令后,a=10,b=15,s=25。

执行加法运算后,原变量值a、 b不会改变。

2.减号

C语言符号是“-”,主要功能是将第一个操作数的值减去第二个操作数的值。

实例2: 有一C语言指令如下:

s=a - b;

假设执行指令前,a=1.8,b=2.3,s=1.0;

则执行指令后,a=1.8,b=2.3,s=-0.5。

执行减法运算后,原变量值a、b不会改变。

3.乘号

C语言符号是“*”,主要功能是将两个操作数的值相乘。

实例3: 有一C语言指令如下:

s=a*b;

假设执行指令前,a=5,b=6,s=10;

则执行指令后,a=5,b=6,s=30。

执行乘法运算后,原变量值a、b不会改变。

4.除号

C语言符号是“/”,主要功能是将第一个操作数的值除以第二个操作数的值。

实例4: 有一C语言指令如下:

s=a / b;

假设执行指令前,a=2.4,b=1.2,s=0.5;

则执行指令后,a=2.4,b=1.2,s=2.0。

执行除法运算后,原变量值a、b不会改变。

5.余数

C语言符号是“%”,主要功能是将第一个操作数的值除以第二个操作数,然后求出余数。注意,这个符号只适用两个操作数都是整数,如果要计算浮点数的余数须使用fmod( )函数,可以参考4-10节。

实例5: 有一C语言指令如下:

s=a % b;

假设执行指令前,a=5,b=4,s=3;

则执行指令后,a=5,b=4,s=1。

执行求余数运算后,原变量值a、b不会改变。

程序实例 ch2_6.c:加、减、乘、除与求余数的应用。

上述程序第27行,因为“%”符号是特殊格式字符,如果想要正常输出此字符,必须输入两次“%”符号。

2-6-2 负号运算

除了以上五种基本操作数之外,C语言还有一种运算符,负号(-)运算符。这个运算符号表达方式和减号(-)一样,但是意义不同,前面已经说过减号运算符号,一定要有两个操作数搭配,而这个运算符只要一个操作数就可以了,由于它具有此特性,所以又称这个运算符号是单元(unary)运算符。

实例: 有一C语言指令如下,变量a的左边是负号。

s=-a+b;

假设执行指令前,a=5,b=10,s=2;

则执行指令后,a=5,b=10,s=5。

与前面实例一样,操作数本身在执行指令后值不改变。

2-6-3 否运算

否(!)运算符也是单元运算符。

实例: 有一C语言指令如下:

x=!y

上述如果y是0,则x是1。如果y不是0,则x是0。

2-6-4 运算优先级

在前述2-6-2节的实例中,有一个很有趣的现象,为什么不先执行“a+b”,然后再执行负号运算符号?

其实原因很简单,那就是各个不同的运算符号有不同的执行优先级。以下是上述6种运算符号的执行优先级。

有了以上概念之后,相信各位就应该了解2-6-2节的实例,为什么最后的结果是5了吧!

实例1: 有一C语言指令如下:

s=a*b % c;

假设执行指令前,a=5,b=4,c=3,s=3;

则执行指令后,a=5,b=4,c=3,s=2。

在上述实例中,又产生了一个问题,到底是要先执行a*b还是b % c,在此又有一个规则,那就是在处理有相同优先级的运算时,由左向右运算。

程序实例 ch2_7.c:数学运算优先级的应用。

当然,运算顺序也可借着其他的符号更改,这个符号就是左括号“(”和右括号“) ”。

实例2: 有一C语言指令如下:

s=a*b+c;

假设我们想先执行“b+c”运算,则在程序设计时,可以将上述表达式改成:

s=a*( b+c );

程序实例 ch2_8.c:使用括号更改数学运算的优先级。

2-6-5 程序代码指令太长的处理

有时候在设计C语言时,单一程序代码指令太长,可以在该行尾端增加“\”符号,编译程序会由此符号判别下一行与此行是相同的程序代码指令。可以参考下列程序代码。

上述第19行和第20行右边有“\”符号,由此可以知道其实第19~21行是一条相同的程序代码指令,笔者会在4-11-6节用实例作解说。 76wDnWH3Gv4oKNkvHYDsXDkua9AXKMFWQyp+/Tpkr/5oPs6Ca0nTq4fK8X6rTMHK

点击中间区域
呼出菜单
上一章
目录
下一章
×