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行,因为“%”符号是特殊格式字符,如果想要正常输出此字符,必须输入两次“%”符号。
除了以上五种基本操作数之外,C语言还有一种运算符,负号(-)运算符。这个运算符号表达方式和减号(-)一样,但是意义不同,前面已经说过减号运算符号,一定要有两个操作数搭配,而这个运算符只要一个操作数就可以了,由于它具有此特性,所以又称这个运算符号是单元(unary)运算符。
实例: 有一C语言指令如下,变量a的左边是负号。
s=-a+b;
假设执行指令前,a=5,b=10,s=2;
则执行指令后,a=5,b=10,s=5。
注 与前面实例一样,操作数本身在执行指令后值不改变。
否(!)运算符也是单元运算符。
实例: 有一C语言指令如下:
x=!y
上述如果y是0,则x是1。如果y不是0,则x是0。
在前述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:使用括号更改数学运算的优先级。
有时候在设计C语言时,单一程序代码指令太长,可以在该行尾端增加“\”符号,编译程序会由此符号判别下一行与此行是相同的程序代码指令。可以参考下列程序代码。
上述第19行和第20行右边有“\”符号,由此可以知道其实第19~21行是一条相同的程序代码指令,笔者会在4-11-6节用实例作解说。