C语言运算符(算术,关系,逻辑,赋值,自增运算符, 三目运算符,逗号表达式)

(1)算术运算符

+(加), -(减) , *(乘) , /(除) , %(求余)

除法运算的注意事项

  1. 被除数和除数都是int类型,则商一定是整数(原因:如果商是小数,结果会自动舍去小数点后面的数字)
    例如:
    16 / 4 = 4
    16 / 5 = 3
  2. 被除数和除数只要有一个是float类型,则商也是小数(原因:如果商是小数,结果也会保留小数点后面的数字)
    例如:
    16 / 4.0 = 4.0
    16.0 / 4 = 4.0
    16.0 / 5 = 3.2
    16 / 5.0 = 3.2

典型例题:求s = 1 + 1/2 + 1/3 + …+1/100的值

求余运算的注意事项

  • 求余的运算对象必须都是整数
  • 求余的符号与被求余的数的符号一致
    例如:
    13 % 3 = 1
    13 % -3 = 1
    -13 % 3 = -1

验证的小例子:

#include <stdio.h>
int main (void)
{
	printf ("%d", 13%3);//结果:1 
	printf ("%d", -13%3);//结果:-1 
	printf ("%d", 13%-3);//结果:1 
 } 

(2)关系运算符

<(小于), >(大于), ==(等于), !=(不等于),
<=(小于等于) , >=(大于等于)

"=“与”=="的区别:
"="的意思是将右边的东西赋值给左边

而"=="的意思就是数学意义上的等于

(3)逻辑运算符

||(或) , &&(且), !(非)

该逻辑运算符与数学的或且非符号对真假的判定方法一致

  • &&左右两边的表达式均为真,则总判断为真
  • ||左右两边的表达式只要有一个为真的,则总判断为真

C语言对真假的处理:

  • (1)非零则真,零则假;
  • (2)真用1表示,假用0表示

(1)验证的小例子:

#include <stdio.h>
int main (void)
{
	if (1)
	printf ("哈哈");
	if (-5)
	printf ("嘻嘻");
	if (0)
	printf ("呵呵"); 
 } 
 //结果:哈哈嘻嘻 
  

(2)验证的小例子:

#include <stdio.h>
int main (void)
{
	int a,b;
	a = (3>2) && (5<4);//整体为假
	b = (3>2) || (5<4);//整体为真
	printf ("a=%d", a);//结果:a=0 
	printf ("b=%d", b);//结果:b=1 
 } 
 

(4)赋值运算符

= , += , -= , *=, /=

对于a += 3;它等价于 a = a+3;
对于a *= 3;它等价于 a = a * 3;

优先级别:算术>关系>逻辑>赋值

(5)自增运算符

前自增和后自增的相同点及不同点

前自增 ++i ,后自增 i++
相同点:都使i的值加1
不同点:
前自增使表达式的值为i+1之后的值
后自增使表达式的值为i+1之前的值

验证的小例子:

#include <stdio.h>
int main (void)
{
	int a, b, c;
	a = 5;
	b = a++;
	c = ++a;
	printf ("a=%d", a);//结果:a=7(前自增和后自增使a加了两次1) 
	printf ("b=%d", b);//结果:b=5 (后自增使b的值为a+1之前的值)
	printf ("c=%d", c);//结果:c=7 (前自增使c的值为a+1之后的值)
 } 
 

使用该运算符的注意事项

该运算符应单独使用,不要将它作为表达式的一部分
使用时应屏蔽掉前自增和后自增的差别

使用该运算符的好处

使代码更简练
该运算符的运算速度更快

(6)三目运算符

格式:(A ? B : C)
等价于
if (A)
B;
else
C;
即如果式子A成立,则执行B;如果不成立,则执行C

验证的小例子:

#include <stdio.h>
int main (void)
{
	int a = 1;
	int b = -1;
	(a>0 ? a++ : a--) ;
	(b>0 ? b++ : b--);
	printf ("a=%d", a);//结果:a=2 
	printf ("b=%d", b);//结果:b=-2 
 } 

(7)逗号表达式

格式:(A,B,C,D)
功能:从左到右执行
最终表达式的值为最后一个式子的值
验证小例子:

#include <stdio.h>
int main (void)
{
	int i, j;
	i = 2;
	j = (i++, i+3, i++, i-1);
	printf ("j=%d", j);//结果:j=3 
 } 
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值