C语言算术运算符和表达式
算术运算符和表达式接近于数学上用的算术运算,包含了加、减、乘、除,其运算的规则基本上是一样的。但是C语言中还有其特殊运算符和与数学不同的运算规则。
	
		
	
		
复杂的算术表达式,如下所示:
对负数进行求余运算,规定:若第1个运算分量为正数,则结果为正;若第1个运算分量为负,则结果为负。
【示例1】使用算术运算符计算结果。
a-b=94
b*c=55
a/b=19
ab=4
a%d+b/c=0
此范例中使用了本文介绍的5种运算符,分别输出不同算术表达式的值。其中,“printf("a-b=%d\n",a-b);”,表示先输出“a-b=”,然后再输出 a-b 的值,所以最后输出“a-b=94”。其余按相同方法处理。
【示例2】算术运算符和表达式的应用。
(1)x=30
(2)x=24
(3)x=11
(4)x=1
(5)x=0
(6)x=1
(7)y=25.000000
此范例中使用了复杂的算术表达式,即同一个表达式中出现了多个运算符,因此计算结果应根据不同运算符的优先级与结合性进行运算。如 20+25/5*2,应先计算 25/5 的值,再乘以 2,最后与 20 相加,因为“/”与“*”运算符的优先级高于“+”运算符,而“/”与“*”优先级相同,自左向右进行计算,结果为 30。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
	算术运算符
C语言基本的算术运算符有5个,如下表所示。| 算术运算符 | 说明 | 
|---|---|
| + | 加法运算符或正值运算符 | 
| - | 减法运算符或负值运算符 | 
| * | 乘法运算符 | 
| / | 除法运算符 | 
| % | 求模运算符或求余运算符 | 
算术表达式
C语言的算术表达式如同数学中的基本四则混合运算,在实际中运用得十分广泛。简单的算术表达式如下表所示。| 算术表达式举例 | 数学中的表示 | 含义 | 表达式的值 | 
|---|---|---|---|
| 2+3 | 2+3 | 2 和 3相加 | 5 | 
| 2-3 | 2-3 | 2 减去 3 | -1 | 
| 2*3 | 2×3 | 2 和 3 相乘 | 6 | 
| 2/3 | 2÷3 | 2 除以 3 | 0 | 
| 2%3 | 2 对 3 求余数 | 2 | 
复杂的算术表达式,如下所示:
- 2*(9/3) 结果为 6
- 10/((12+8)%9) 结果为 5
% 运算符
%运算符要求两侧的运算分量必须为整型数据。这个很好理解,如果有小数部分,就不存在余数了。例如,6.0%4 为非法表达式。对负数进行求余运算,规定:若第1个运算分量为正数,则结果为正;若第1个运算分量为负,则结果为负。
/ 运算符
/运算符如果前后两个运算分量都为整数,则商也是整数,否则商为实数。
范例
我们通过两个范例来学习算术运算符和表达式的使用。【示例1】使用算术运算符计算结果。
#include <stdio.h>
int main()
{
    int a=99;  /*定义整型变量a、b、c、d,并分别赋初值*/
    int b=5;
    int c=11;
    int d=3;
    printf("a-b=%d\n",a-b); /*输出a-b的结果*/
    printf("b*c=%d\n",b*c); /*输出b*c的结果*/
    printf("a/b=%d\n",a/b); /*输出a/b的结果*/
    printf("a%b=%d\n",a%b); /*输出a%b的结果*/
    printf("a%%d+b/c=%d\n",a%d+b/c);  /*输出a%d+b/c的结果*/
}
运行结果:a-b=94
b*c=55
a/b=19
ab=4
a%d+b/c=0
此范例中使用了本文介绍的5种运算符,分别输出不同算术表达式的值。其中,“printf("a-b=%d\n",a-b);”,表示先输出“a-b=”,然后再输出 a-b 的值,所以最后输出“a-b=94”。其余按相同方法处理。
【示例2】算术运算符和表达式的应用。
#include <stdio.h>
int main()
{
    int x,a=3;
    float y;
    x=20+25/5*2;
    printf("(1)x=%d\n",x);
    x=25/2*2;
    printf("(2)x=%d\n",x);
    x=-a+4*5-6;
    printf("(3)x=%d\n",x);
    x=a+4%5-6;
    printf("(4)x=%d\n",x);
    x=-3*4%-6/5;
    printf("(5)x=%d\n",x);
    x=(7+6)%5/2;
    printf("(6)x=%d\n",x);
    y=25.0/2.0*2.0;
    printf("(7)y=%f\n",y);
}
运行结果:(1)x=30
(2)x=24
(3)x=11
(4)x=1
(5)x=0
(6)x=1
(7)y=25.000000
此范例中使用了复杂的算术表达式,即同一个表达式中出现了多个运算符,因此计算结果应根据不同运算符的优先级与结合性进行运算。如 20+25/5*2,应先计算 25/5 的值,再乘以 2,最后与 20 相加,因为“/”与“*”运算符的优先级高于“+”运算符,而“/”与“*”优先级相同,自左向右进行计算,结果为 30。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
 
	