目录
什么是运算符
运算符就是用来告诉编译器要执行特定的数学逻辑操作的符号。C语言包含了丰富的运算符,下面就来一一介绍。
一、算术运算符
假设变量A的值为5,变量B的值为10,那么:
运算符 | 描述 | 举例 |
+ | 把两个数相加 | A + B 将得到 15 |
- | 把第二个数从第一个数中减去 | A - B 将得到 -5 |
* | 两个数相乘 | A * B 将得到 50 |
/ | 分子除以分母 | B / A 将得到 2 |
% | 整除后的余数 | B % A 将得到 0 |
++ | 自增运算符,整数值增加1 | A++ 将得到 6 |
-- | 自减运算符,整数值减少1 | A-- 将得到 4 |
#include <stdio.h>
int main()
{
int a = 15;
int b = 8;
int c ;
c = a + b;
printf("Line 1 - c 的值是 %d\n", c );
c = a - b;
printf("Line 2 - c 的值是 %d\n", c );
c = a * b;
printf("Line 3 - c 的值是 %d\n", c );
c = a / b;
printf("Line 4 - c 的值是 %d\n", c );
c = a % b;
printf("Line 5 - c 的值是 %d\n", c );
c = a++; // 赋值后再加 1 ,c 为 15,a 为 16
printf("Line 6 - c 的值是 %d\n", c );
c = a--; // 赋值后再减 1 ,c 为 16 ,a 为 15
printf("Line 7 - c 的值是 %d\n", c );
}
上面程序输出的结果为:
Line 1 - c 的值是 23 Line 2 - c 的值是 7 Line 3 - c 的值是 120 Line 4 - c 的值是 1 Line 5 - c 的值是 7 Line 6 - c 的值是 15 Line 7 - c 的值是 16
a++与++a是有区别的,这个也是最容易搞错的:
#include <stdio.h>
int main()
{
int c;
int a = 10;
c = a++;
printf("先赋值后运算:\n");
printf("Line 1 - c 的值是 %d\n", c );
printf("Line 2 - a 的值是 %d\n", a );
a = 10;
c = a--;
printf("Line 3 - c 的值是 %d\n", c );
printf("Line 4 - a 的值是 %d\n", a );
printf("先运算后赋值:\n");
a = 10;
c = ++a;
printf("Line 5 - c 的值是 %d\n", c );
printf("Line 6 - a 的值是 %d\n", a );
a = 10;
c = --a;
printf("Line 7 - c 的值是 %d\n", c );
printf("Line 8 - a 的值是 %d\n", a );
}
程序运行的结果:
先赋值后运算: Line 1 - c 的值是 10 Line 2 - a 的值是 11 Line 3 - c 的值是 10 Line 4 - a 的值是 9 先运算后赋值: Line 5 - c 的值是 11 Line 6 - a 的值是 11 Line 7 - c 的值是 9 Line 8 - a 的值是 9
二、关系运算符
假设A的值为5,B的值为10,根据C语言关系运算符就会有以下的结果:
运算符 | 描述 | 结果 |
== | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 为假 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (A != B) 为真 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (A > B) 为假 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (A < B) 为真 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (A >= B) 为假 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (A <= B) 为真 |
#include <stdio.h>
int main()
{
int a = 21;
int b = 10;
int c ;
if( a == b )
{
printf("Line 1 - a 等于 b\n" );
}
else
{
printf("Line 1 - a 不等于 b\n" );
}
if ( a < b )
{
printf("Line 2 - a 小于 b\n" );
}
else
{
printf("Line 2 - a 不小于 b\n" );
}
if ( a > b )
{
printf("Line 3 - a 大于 b\n" );
}
else
{
printf("Line 3 - a 不大于 b\n" );
}
/* 改变 a 和 b 的值 */
a = 5;
b = 20;
if ( a <= b )
{
printf("Line 4 - a 小于或等于 b\n" );
}
if ( b >= a )
{
printf("Line 5 - b 大于或等于 a\n" );
}
}
当运行以上程序的时候,就会产生这样的结果:
Line 1 - a 不等于 b Line 2 - a 不小于 b Line 3 - a 大于 b Line 4 - a 小于或等于 b Line 5 - b 大于或等于 a