爱上C语言:操作符详解(上)

简介: 爱上C语言:操作符详解(上)

🚀前言

大家好啊😉!今天阿辉将为大家介绍C语言中的部分操作符,✍包括算数操作符,关系操作符,前置后置++,逻辑操作符,条件操作符,逗号表达式等操作符,剩下的操作符将在下一篇文章中讲解关注阿辉不迷路哦 😘 ,内容干货满满😋,接下来就跟着阿辉一起学习吧👊

🚀算数操作符

算数操作符:+(加) -(减) *(乘) /(除) %(取模)这几个操作符最为常见

这里我们重点讲一下/(除) %(取模)这两个操作符,另外三个操作符很简单相信大家都掌握了

/除法操作符: 要注意的就是 /的两个操作数都为整数时执行的是整数除法,相除得到的结果也是整数,只有当其中一个操作数为浮点数时执行浮点数除法

🌰栗子

#include<stdio.h>
int main()
{
  printf("%d\n", 5 / 2);//整数除法
  printf("%f\n", 5.0 / 2);//浮点数除法
  return 0;
}

%取模操作符: 取模操作符的两个操作数只能是整数,取模其实就是取余,当被取余数(取模操作符左边的操作数)为负数时,余数也为负数

🌰栗子

#include<stdio.h>
int main()
{
  printf("%d\n", 5 % 2);
  printf("%d\n", -5 % 2);
  return 0;
}

🚀关系操作符

<   //判断小于
>   //判断大于
<=  //判断小于等于
>=  //判断大于等于
==  //判断等于
!=  //判断不等于

关系操作符的返回结果为

常用在if 语句、while语句、for语句

注意: ==很容易写成=,从而造成bug

但是如果你像下面这样写编译器能帮你发现错误 😉

🚀前置++(–)和后置++(–)

前置++(–):操作数先++(--)自增1(自减1),后使用

后置++(–):操作数使用,后先++(--)自增1(自减1)

🌰栗子

int main()
{
  int a = 0;
  int b = 0;
  if (++a)
    printf("阿辉不一般!\n");
  if (b++)
    printf("阿辉很一般!\n");
  printf("a = %d b = %d\n", a, b);
  return 0;

我们可以看到仅仅打印了阿辉不一般!并没有打印阿辉很一般!因为a,b的初始值是0a是前置++,前置++先自增1后使用,if进行判断的时候a的值为1为真;b是后置++,后置++先使用,后自增1if进行判断时b的值为0为假;不过前置++和后置++最后都会自增

🚀逻辑操作符

&&  逻辑与
||  逻辑或

&&逻辑与操作符两边的表达式都为真才为真,否则为假

||逻辑或操作符两边的表达式都为假才为假,否则为真

重点来了👊

我们先看代码

int main()
{
  int a = 0;
  int b = 0;
  int c = 0;
  a && ++b;
  ++c || ++a;
  printf("a = %d b = %d c = %d\n", a, b, c);
  return 0;
}

我们发现ab的值都为0并没有自增,这是为什么呢?

这是因为&&逻辑与操作符遵循从左至右计算,它的左操作数(也就是前面的一个操作数)为假时整个表达式也就为假了,这时&&并不需要计算右操作数的真假,也就是说这时&&不会去执行后面的表达式,所以++b并没有执行

||逻辑或操作符也遵循从左至右计算,它的左操作数(也就是前面的一个操作数)为真时整个表达式也就为真了,这时||并不需要计算右操作数的真假,也就是说这时||不会去执行后面的表达式,所以++a并没有执行

上述现象也被称为短路现象

这编译器还怪嘞 😆

🚀条件操作符

条件操作符表达式? 语句1: 语句2;也叫三目操作符,当表达式结果为时,执行语句1,表达式结果为时,执行语句2.

🌰栗子

#include <stdio.h>
int main()
{
  int a = 0;
  int b = 0;
  scanf("%d%d", &a, &b);
  (a > b) ? printf("较大的数是%d\n",a) : printf("较大的数是%d\n", b);
  return 0;
}

🚀逗号表达式

逗号表达式的使用方法:

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

逗号表达式从左向右依次计算,最后一个表达式的结果是整个表达式的结果

🌰栗子

#include <stdio.h>
int main()
{
  int x = 0, a = 1, b = 2, c = 3, d = 5;
  x = (a++, b + 2, c += 2, a + d);
  printf("x=%d\n", x);
  printf("a=%d,b=%d,c=%d,d=%d", a, b, c, d);
  return 0;
}

因为逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果

所以a++会执行使得a+1,

b+2虽然也被执行了,但是并没有重新赋值给b,所以只是进行了简单计算,并没有进行赋值操作,所以b没有变化

c+=2执行后c被重新赋值了,所以c+2

最后:x=a+d=2+5=7

🚀下标引用操作符

这个[]操作符是不是很熟,没错我们在数组那里用来访问数组中各个元素用到的操作符,死去的记忆突然攻击我 😵

使用方法:

数组名[ 操作数 ]

详细讲解可以看看阿辉之前的文章 数组篇

🚀函数调用操作符

函数调用操作符()可以有多个操作数,但至少有一个操作数——函数名

函数名(变量1,变量2,...,变量n);

🌰栗子

int add(int a, int b)
{
  return a + b;
}
int main()
{
  int a = 2;
  int b = 3;
  int sum = add(a, b);
  printf("%d\n", sum)l;
  return 0;
}

到这里,阿辉今天对于C语言操作符的分享就结束了,希望这篇博客能让大家有所收获, 如果觉得阿辉写得不错的话,记得给个赞呗,你们的支持是我创作的最大动力🌹

相关文章
|
11天前
|
C语言
C语言操作符(补充+面试)
C语言操作符(补充+面试)
23 6
|
7天前
|
存储 编译器 C语言
十一:《初学C语言》— 操作符详解(上)
【8月更文挑战第12天】本篇文章讲解了二进制与非二进制的转换;原码反码和补码;移位操作符及位操作符,并附上多个教学代码及代码练习示例
19 0
十一:《初学C语言》—  操作符详解(上)
|
1天前
|
存储 C语言 索引
【C语言篇】操作符详解(下篇)
如果某个操作数的类型在上⾯这个列表中排名靠后,那么⾸先要转换为另外⼀个操作数的类型后执⾏运算。
|
1天前
|
程序员 编译器 C语言
【C语言篇】操作符详解(上篇)
这是合法表达式,不会报错,但是通常达不到想要的结果, 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。
|
1月前
|
C语言
五:《初学C语言》— 操作符
本篇文章主要讲解了关系操作符和逻辑操作符并附上了多个代码示例
30 1
五:《初学C语言》—  操作符
|
2月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
2月前
|
编译器 C语言
【C语言】:中移位操作符,位操作符详运算规则详解
【C语言】:中移位操作符,位操作符详运算规则详解
23 1
|
2月前
|
存储 编译器 C语言
|
2月前
|
存储 C语言 索引
【C语言基础】:操作符详解(二)
【C语言基础】:操作符详解(二)
|
2月前
|
编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
35 3