C语言操作符详解

简介: C语言操作符详解

 今天主要给大家带来的是操作符详解,主要包括算术操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号操作符。

1.算术操作符

算术操作符包括  +  -  /  *  %

我们写一个计算器代码来详细解释一下,代码如下:

#include<stdio.h>
int main()
{
  int a=10, b=3;
  int num1 = 0, num2 = 0, num3 = 0, num4 = 0, num5 = 0;
  num1 = a + b;
  num2 = a - b;
  num3 = a * b;
  num4 = a / b;
  num5 = a % b;
  return 0;
}

        在代码中我们可以清楚看到操作符的应用, 注意在% 操作符的两个操作数必须为整数。返回的是整除之后的余数,故被除数是浮点型的时候我们需要强制转换类型转换为整形。

2.移位操作符

移位操作符包括<<和>>

<<是左移,是将整形数据的补码向左移一位右边补0;

>>是右移,是将整形数据的补码向右移动一位,其中包括逻辑右移补0和算术右移补符号位。

代码如下:

#include<stdio.h>
int main()
{
  int num = 10;
  printf("%d\n",num << 1);
  printf("%d\n", num >> 1);
  return 0;
}

       对于num<<1,我们先写出num的二进制位00000000000000000000000000001010,正数原码补码反码相同,左移00000000000000000000000000010100,是正数原码补码反码相同为20.对于num>>,我们先写出num的二进制位00000000000000000000000000001010,正数原码补码反码相同,右移00000000000000000000000000000101(我们是按照算数右移来计算)正数原码补码反码相同,得到为5.注意移位时需要移动正整数位不能移动负数位,而且num必须为整数。

3.位操作符

&   按位与(补码全为1为1,否则为0)

|    按位或(补码有1为1,否则为0)

^   按位异或(相同为0,不同为1)

其中操作数必须为整数

        对于按位异或我们可以得到两个相同的数异或为0,一个数和0异或还是这个数,故我们可以得到不使用第三个变量来交换两个数,代码如下:

#include<stdio.h>
int main()
{
  int a = 2, b = 10;
  a = a ^ b;
  b = a ^ b;
  a = a ^ b;
  printf("a=%d,b=%d", a, b);
  return 0;
}

       能进行交换的原因是异或遵循交换律,再根据据 两个相同的数异或为0,一个数和0异或还是这个数,即可完成交换。

4.赋值操作符

赋值操作符也即是 = ,+= , -= , *= , /= , %=由于常用这些操作符这里不详细讲解。

5. 单目操作符

!
-
+
&
sizeof
~
--
++
逻辑反操作
负值
正值
取地址
操作数的类型长度(以字节为单位)
对一个数的二进制按位取反
前置、后置--
前置、后置++

*                              间接访问操作符(解引用操作符)

(类型)                      强制类型转换

对于!我们可以理解为非例如!0也就是非0,对于sizeof,代码如下

#include<stdio.h>
int main()
{
  int arr[5] = { 1,2,3,4,5 };
  printf("%d\n", sizeof(arr));
  printf("%d\n", sizeof(arr[0]));
  printf("%d\n", sizeof(arr)/sizeof(arr[0]));
  return 0;
}

运行后

由于sizeof单位是字节,我们也可以得到数组中有多少元素。

对于++和--,都分为前置和和后置,对于前置++a就是先让a加1再进行操作,后置a++就是先操作a再让a加1.对于前置和后置的结果都是让a加1.

6.关系操作符

>         大于

<         小于

==       等于

>=       大于等于

<=       小于等于

!=        不等于

7.逻辑操作符

&&     且

||        或

        例如我们想要表示0<=a<=2,需要用到&&,具体是a<=1&&a>=0.对于a<1且a>2,则需要用到||,具体为a<1||a>2.

8.条件操作符

表示为   exp1 ? exp2 : exp3

先判断exp1的真假,真则返回exp2的值,假返回exp3的值

例如代码

#include<stdio.h>
int main()
{
  int a = 0;
  a = 30 > 20 ? 1 : 2;
  printf("%d", a);
  return 0;
}

运行结果为

9.逗号操作符

表达式为        exp1, exp2, exp3, …expN

从第一个表达式开始到最后一个表达式,最后返回最后一个表达式的值,

代码如下;

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

运行结果如下

故我们可以得到在运算的过程中各个变量的值也会改变。 、

本次内容到此结束,希望大家可以一键三连。

目录
相关文章
|
16天前
|
C语言
C语言之操作符1
C语言之操作符1
19 0
|
17天前
|
编译器 C语言
操作符详解(C语言基础深入解析)
操作符详解(C语言基础深入解析)
|
1月前
|
存储 编译器 C语言
爱上C语言:操作符详解(下)
爱上C语言:操作符详解(下)
|
2月前
|
算法 测试技术 C语言
【C语言】异或(^)操作符
【C语言】异或(^)操作符
18 0
|
2月前
|
存储 算法 编译器
【c 语言 】移位操作符详解
【c 语言 】移位操作符详解
40 0
|
2月前
|
存储 算法 程序员
【c 语言 】位操作符详解
【c 语言 】位操作符详解
57 0
|
2月前
|
存储 编译器 Linux
操作符详解【c语言】
操作符详解【c语言】
|
2月前
|
C语言
【C语言】位操作符详解
【C语言】位操作符详解
25 0
|
2月前
|
存储 C语言
【C语言】位与移位操作符详解
【C语言】位与移位操作符详解
【C语言】位与移位操作符详解
|
2月前
|
存储 编译器 程序员
c语言从入门到实战——操作符详解
C语言操作符指的是程序中用来进行各种计算、逻辑和条件操作的符号或符号组合。 操作符是编程中用于执行特定操作或比较数据的符号。它们根据操作类型分为算术、比较、逻辑和位操作符。算术操作符执行加、减、乘、除等数学运算;比较操作符比较两个值的大小或相等性;逻辑操作符连接多个条件,形成更复杂的逻辑判断;位操作符则直接对整数的二进制位进行操作。了解各种操作符的特性和用法,对于编写高效、准确的代码至关重要。
55 0