一、算术运算符

C语言中的算术运算符包括+、-、*、/、%。

运算符

描述

+

加法

-

减法

*

乘法

/

除法

%

取余

代码示例:

#include <stdio.h>
int main()
{
	int a = 4;
	int b = 3;

	printf("a=%d,b=%d\n", a, b);

	printf("a+b=%d\n", a + b);
	printf("a-b=%d\n", a - b);
	printf("a*b=%d\n", a * b);
	printf("a/b=%d\n", a / b);
	printf("a%%b=%d\n", a % b);
	return 0;
}

执行程序:

C语言运算符的学习_运算符

注意事项:

1.除法:

  • 两整数相除,结果整数(舍小数部分)
  • 两浮点数相除,结果 double 浮点数
  • 整数和实数相除,自动类型转换为实型
  • 不允许 除 0(与数学一样)

2.取余:

  • 运算数必须是整型
  • 对负数取余,结果为余数的绝对值
  • 不允许 除 0(与数学一样)

二、比较运算符

比较运算符包括>、>=、<、<=、==、!=。

运算符

描述

<

小于

<=

小于等于

>

大于

>=

大于等于

==

相等

!=

不等于

代码示例:

#include <stdio.h>
int main()
{
	int a = 4;
	int b = 3;

	printf("a=%d,b=%d\n", a, b);

	// 结果为1表示成立 否则表示不成立
	printf("a>b=%d\n", a > b);
	printf("a>=b=%d\n", a >= b);
	printf("a<b=%d\n", a < b);
	printf("a<=b=%d\n", a <= b);
	printf("a==b=%d\n", a == b);
	printf("a!=b=%d\n", a != b);
	return 0;
}

执行程序:

C语言运算符的学习_运算符_02

三、赋值运算符

赋值运算符包括=、+=、-=、*=、/=、%=。

运算符

描述

=

等于

+=

加等于

-=

减等于

*=

乘等于

/=

除等于

%=

模等于

代码示例:

#include <stdio.h>
int main()
{
	// 赋值运算符
	int a = 4;
	int b = 3;

	printf("a=%d,b=%d\n", a, b);

	// 相当于a=a+b
	printf("a+=b=%d\n", a += b);
	// a=a-b
	printf("a-=b=%d\n", a -= b);
	// a=a*b
	printf("a*=b=%d\n", a *= b);
	// a=a/b
	printf("a/=b=%d\n", a /= b);
	// a=a%b
	printf("a%%=b=%d\n", a %= b);
	return 0;
}

执行程序:

C语言运算符的学习_C_03

注意事项:

  • 先运算,后赋值。方向,自右向左
  • += 可实现累加,将别人的数据累加给自己。
  • 所有赋值运算符,都会修改变量原始值。

四、自增自减运算符

自增自减运算符包括++、--。

作用:

  • 自增 ++, 放在变量前面或后面,对变量自身值+1。
  • 自减 --, 放在变量前面或后面,对变量自身值-1。

注意:运算符放在变量前面就先把计算后的结果赋值给变量,运算符放在变量的后面就先把计算前变量的值赋值给其他变量。

代码示例:

#include <stdio.h>
int main()
{
	// 赋值运算符
	int a = 4;
	int b = 3;

	printf("a=%d,b=%d\n", a, b);

	// 直接显示a的值 后续才自增操作
	printf("a++=%d\n", a++);
	// a=5 ++a先自增操作
	printf("++a=%d\n", ++a);

	printf("--b=%d\n", --b);
	printf("b--=%d\n", b--);
	
	return 0;
}

执行程序:

C语言运算符的学习_运算符_04

五、逻辑运算符

逻辑运算符用于程序解决 类似 或者、并且 这种 含有逻辑关系的 情况。

将多个条件放在一起运算,最终返回 真(1)或 假(0)。

运算符

描述

&&

且 两边同时成立,条件才成立

||

或 两边有一个成立,条件就成立

!

取反 表达式为假,加 ! 为真;表达式为真,加 ! 为假

代码示例:

#include <stdio.h>
int main()
{
	// 赋值运算符
	int a = 4;
	int b = 3;
	int c = 2;

	printf("a=%d,b=%d\n", a, b);

	// 值为1表示为真 0表示为假
	printf("a>b&& a>c=%d\n", (a > b&&a > c));
	printf("a>b || c>b=%d\n", (a > b || c > b));
	printf("!c>b=%d\n", !(c > b));
	return 0;
}

执行程序:

C语言运算符的学习_C_05

短路运算:

 逻辑运算符的特性,导致实际应用中一部分表达式不执行,也能得出整个表达式结果。

  • 判断 表达式 a && (b+c) 的结果:
  • 当 a 为假时,不必计算 b+c,可直接得出表达式为假的结论。
  • 判断 表达式 a || (b+c) 的结果:
  • 当 a 为真时,则不必计算 b+c,就能判断出表达式的值为 真。

在代码中利用短路运算,可 避免不必要运算,提高程序执行效率。

总结:

  • &&:同真为真; ||:有真为真; ! :真非为假
  • 判断一个数在另两个数范围内,用 && 实现
  • 短路特性:运算符左侧表达式可直接得结论,则右侧表达式不执行
  • 利用短路特性:&&,将易假表达式放左侧;||,将易真表达式放左侧

六、条件运算符

条件运算符也可以称为三目运算。

语法:表达式1?结果1:结果2。

规则:判断表达式是否成立,如果成立就返回结果1。如果不成立就返回结果2。

代码示例:

#include <stdio.h>
int main()
{
	int score;
	printf("请输入您的分数:");
	scanf("%d", &score);
	printf("判断是否及格:%s", score >= 60 ? "及格" : "不及格");
	return 0;
}

执行程序:

C语言运算符的学习_运算符_06

七、逗号运算符

C语言中,逗号也是一种运算符。 用逗号将多个表达式连接起来,组成逗号表达式。一般形式为:

表达式 1,表达式 2,表达式 3,....,表达式 n

如:a+3, b+4, c+5 是一个 逗号表达式。

代码示例:

#include <stdio.h>
int main()
{
	int i = 3;
	int res = (i++, ++i);

	printf("i=%d\n", i);
	return 0;
}

执行程序:

C语言运算符的学习_运算符_07