一篇文章带你了解C语言操作符

 更新时间:2021年08月31日 16:57:48   作者:不言511  
指令系统的每一条指令都有一个操作符,它表示该指令应进行什么样性质的操作,不同的指令用操作符这个字段的不同编码来表示,每个编码代表一种指令,这篇文章主要给大家介绍了关于C语言中操作符的相关资料,需要的朋友可以参考下

一、操作符分类

C语言的操作符有很多,我这里将其分为十类,然后再对每一类中的操作符进行详细讲解。

1、算术操作符

2、移位操作符

3、位操作符

4、赋值操作符

5、单目操作符

6、关系操作符

7、逻辑操作符

8、条件操作符

9、逗号表达式

10、其它操作符

 二、算术操作符

1、这五个操作符分别是加、减、乘、除、求余。

2、对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除 法。

3、除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。% 操作符的两个操作数必须为整数,返回的是整除之后的余数。

三、移位操作符

左移操作符和右移操作符操作的对象都是二进制数。

1、左移操作符

左移操作符的移位规则是:左边抛弃,右边补0。

 但是num没有被赋值的情况下,自身的值不会发生变化

 2、右移操作符

右移操作符移位规则有两种:

2.1算术移位

左边用原该值的符号位填充,右边丢弃

 

 2.2逻辑移位

左边用0填充,右边丢弃

 注意: 对于移位运算符,不要移动负数位,这个是标准未定义的。

 四、位操作符

 1、按位与

 2、按位或

3、按位异或

 4、一道练习题

不能创建临时变量(第三个变量),实现两个数的交换

 

两个相同的数异或为0.

 五、赋值操作符

1、赋值操作符(=)是一个很棒的操作符,他可以让你得到一个你之前不满意的值。也就是你可以对其重新赋值。

 2、赋值操作符可以连续使用

 3、复合赋值符

 这些运算符都可以写成复合的效果。

例如:

六、单目操作符

 1、逻辑反操作

加上!与之形成相反的逻辑,例如=,加上!变为不等于。一个非零的值加上!输出为0。

 2、取地址

 3、sizeof

sizeof可以计算操作数的类型长度(以字节为单位)

 4、++和--运算符

 4.1前置++和--

 4.2后置++和--

 七、关系操作符

 这些关系运算符比较简单,没什么可讲的,但是我们要注意一些运算符使用时候的陷阱。

要注意: 在编程的过程中== 和=不小心写错,导致的错误。

八、逻辑操作符

&&     逻辑与

||        逻辑或 

这里要注意区分逻辑与和按位与 、逻辑或和按位或。

 逻辑与和或的特点:

当a=0,0&&任何数都为0,已经确定结果,后面的算式不再计算

 

 九、条件操作符

exp1 ? exp2 : exp3

 上面两种写法的逻辑是相同的。

十、逗号表达式

exp1, exp2, exp3, …expN

逗号表达式,就是用逗号隔开的多个表达式。

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

 十一、其它操作符

1.下标引用操作符[ ]

操作数是一个数组名 + 一个索引值

2.函数调用操作符( )

接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

3.访问一个结构的成员

      .        结构体.成员名

      ->     结构体指针->成员名

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • C++中抽象类和接口的区别介绍

    C++中抽象类和接口的区别介绍

    抽象类(abstract class)和接口(interface)的概念是面向对象设计中常用的概念, 也是比较容易混淆的概念. 在这里, 我提出一种区分它们的思路
    2013-04-04
  • Qt实现线程与定时器的方法

    Qt实现线程与定时器的方法

    本文主要介绍了Qt实现线程与定时器的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C语言实现带头双向环形链表

    C语言实现带头双向环形链表

    这篇文章主要为大家详细介绍了C语言实现带头双向环形链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C/C++使用Zlib实现文件的压缩与解压

    C/C++使用Zlib实现文件的压缩与解压

    zlib 是一个开源的数据压缩库,旨在提供高效、轻量级的压缩和解压缩算法,本文将介绍如何使用 zlib 库进行数据的压缩和解压缩,以及如何保存和读取压缩后的文件,感兴趣的可以了解下
    2023-11-11
  • C语言实现顺序表的基本操作的示例详解

    C语言实现顺序表的基本操作的示例详解

    顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。本文将通过示例为大家讲解一下顺序表的基本操作,需要的可以参考一下
    2022-11-11
  • C++ 异常处理 catch(...)介绍

    C++ 异常处理 catch(...)介绍

    catch(…)能够捕获多种数据类型的异常对象,所以它提供给程序员一种对异常 对象更好的控制手段,使开发的软件系统有很好的可靠性
    2013-09-09
  • C语言简单实现快速排序

    C语言简单实现快速排序

    快速排序是一种不稳定排序,这篇文章主要为大家详细介绍了C语言简单实现快速排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C语言实现简单通讯录系统

    C语言实现简单通讯录系统

    这篇文章主要为大家详细介绍了C语言实现简单通讯录系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 详细了解C语言二叉树的建立与遍历

    详细了解C语言二叉树的建立与遍历

    这篇文章主要介绍了C中二叉树的建立和各种遍历实例代码,涉及树节点的定义,后序遍历,层序遍历,深度优先和广度优先等相关内容,具有一定借鉴价值,需要的朋友可以参考下
    2021-07-07
  • C++存储持续性生命周期原理解析

    C++存储持续性生命周期原理解析

    这篇文章主要为大家介绍了C++存储持续性生命周期原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01

最新评论