C 语言的基本算术运算符 = + - * /

C 语言的基本算术运算符有: = + - * /

赋值运算符 =

赋值运算符左侧必须引用一个内存中的位置, 最简单的方法就是使用变量名, 也可以使用指针指向内存中的某个位置.

赋值表达式的目的是把值储存到目标内存位置上.

下面语句中的 = 表示初始化而不是赋值:

const int a = 10;

下面表达式中,

a = b + (c - d);

表达式 (c - d) 是一个右值, 该表达式不能表示特定的内存位置, 也不能给它赋值. 它只是程序计算的一个临时值, 在计算完毕后会被丢弃.

赋值运算符支持连续赋值.

程序示例:

#include

int main(void)
{
	int a, b, c;
	a = b = c = 10;
	printf("a = %d, b = %d, c = %d\n", a, b, c);

	return 0;
}

结果:

a = 10, b = 10, c = 10

不支持连续初始化, 下面语句是错误的:

int a = b = c = 10;

其他赋值运算符 += , -= , *= , /= , %=

这些赋值运算符都用于更新变量, 左侧是一个变量名, 右侧是一个表达式.

赋给变量的新值是根据右侧表达式的值调整之后的值.

确切的调整方案取决于具体的运算符.

例如:

scores += 20 is the same as scores = scores + 20 .
dimes -= 2 is the same as dimes = dimes - 2 .
bunnies *= 2 is the same as bunnies = bunnies * 2 .
time /= 2.73 is the same as time = time / 2.73 .
reduce %= 3 is the same as reduce = reduce % 3 .

这几个派生的赋值运算符的优先级和 = 相同.

加法运算符 +

additional operator

减法运算符 -

subtraction operator

加法运算符和减法运算符都是双目运算符 binary operator

符号运算符 + 和 -

- 可以用来表明或者改变一个值的代数符号.

程序示例:

#include

int main(void)
{
	int a, b;
	a = -10;
	b = -a;
	printf("a = %d, b = %d\n", a, b);

	return 0;
}

结果:

a = -10, b = 10

此时 - 是一个一元运算符 unary operator

C90 增加了 + 用作一元运算符. 例如:

a = +10;

这在 C90 之前是不允许的, 因为不能将 + 用作一元运算符.

乘法运算符 *

multiplication operator

除法运算符 /

division operator

浮点数除法的结果是浮点数。

即便可以整除,结果也是浮点数。

整数除法的结果是整数。

整数除法的结果如果是小数,将直接丢弃小数部分。这叫做截断 truncation. 而不是进行四舍五入.

程序示例:

// 整数除法, 除不尽, 小数直接被丢弃
#include

int main(void)
{
	int a = 9, b = 4;
	printf("%d\n", a / b);

	return 0;
}

结果:

2

程序示例:

#include

int main(void)
{
	int a = 8;
	float b = 4.0;
	printf("%f\n", a / b);

	return 0;
}

结果:

2.000000

C99 规定, 负数的整数除法采用 趋零截断.

比如 − 1 ÷ 3 = − 0.333333 -1{\div}3= -0.333333 1÷3=0.333333

代码:

#include

int main(void)
{
	int a = -1;
	int b = 3;
	int c = 1;
	int d = -3;
	printf("%d\n", a / b);
	printf("%d\n", c / d);

	return 0;
}

结果:

0
0

你可能感兴趣的:(C,语言,c语言)