C/C++运算符超详细讲解(系统性学习day5)

这篇具有很好参考价值的文章主要介绍了C/C++运算符超详细讲解(系统性学习day5)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、运算符的概念与分类

二、算术运算符

三、关系运算符

 四、逻辑运算符

五、赋值运算符

六、运算符的优先级 

总结


 文章来源地址https://www.toymoban.com/news/detail-723212.html

前言

本篇文章是对运算符的具体讲解。


一、运算符的概念与分类

概念:

运算符就是一种告诉编译器执行特定的数学或逻辑操作的符号,用来表示针对数据的特定操作,也称之为操作符。在计算机编程中,运算符用于操作数据,执行各种数学和逻辑运算,并产生结果。

分类:

1.根据分类对象的多少可以分为单目运算符(又名一元运算符)、双目操作符(又名二元操作符)、三目操作符(又名三元操作符)。

2.根据运算作用不同又可以分为:算术操作符、关系操作符、逻辑操作符、位运算符、赋值运算符、杂项操作符等。

二、算术运算符

含义:

算术运算符是对数值类型变量进行运算的,属于上述的双目操作符,结合性是从左到右的,算术优先级就是我们所知的 “ * 、/ 、% ”>“ +、 -”

(实例中的变量x为20,变量y为10)
运算符 描述 实例
+ 把两个操作数相加 x+y得到15
第一个操作数减去第二个操作数 x-y得到5
* 把两个操作数相乘  x*y得到50
把两个操作数相除 x/y得到2
% 取模,结果为整除后的余数 x%y得到0
++ 自增运算符,整数值加一 x++得到11
-- 自减运算符,整数值减一 x--得到9

需要注意的是:

a++(a--) 与 ++a(--a)的区别,前者为赋值运算,后者为运算赋值。当其作为一个独立的语言使用时,是等价的。但是当它出现在语句中就会有所不同。

下面通过一个实例代码来帮助大家更好的理解:

#include <stdio.h>
 
int main()
{
   int y;
   int x = 10;
   y = x++; 
   printf("先赋值后运算:\n");
   printf("y 的值是 %d\n", y );
   printf("x 的值是 %d\n", x );
   x = 10;
   y = x--; 
   printf("y 的值是 %d\n", y );
   printf("x 的值是 %d\n", x );
 
   printf("先运算后赋值:\n");
   x = 10;
   y = ++x; 
   printf("y 的值是 %d\n", y );
   printf("x 的值是 %d\n", x );
   a = 10;
   c = --a; 
   printf("y 的值是 %d\n", y );
   printf("x 的值是 %d\n", x );
 
    return 0;
}

程序运行的结果如下:

C/C++运算符超详细讲解(系统性学习day5),Ubantu和C语言学习,学习,c语言,c#,开发语言
        
       
      
      
     
      
       

         

三、关系运算符

含义:

关系运算符的值只能是0或1。当运算符的值为真时,结果值都为1;反之,都为0;关系运算符也属于双目运算符,结合性为从左到右,优先级为“ > 、 < 、 >= 、 <=  ”  >  " == 、 !=  "

(假设实例中的变量x的值为20,变量y的值为10)
运算符  描述 实例
== 检查俩个操作数的值是否相等,如果相等则为真  x==y为假
!= 检查俩个操作数的值是否相等,如果不相等则为真 x!=y为真
检查左操作数是否大于右操作数,如果符合则为真  x>y为真
检查左操作数是否小于右操作数,如果符合则为真 x<y为假
>=   检查左操作数是否大于等于右操作数,如果符合则为真 x>=y为真
<= 检查左操作数是否小于等于右操作数,如果符合则为真 x<=y为假

下面通过一个实例代码来帮助大家更好的理解:

#include <stdio.h>

int main()
{
   int x = 20;
   int y = 10;
   int c ;

   if( x == y )
   {
      printf("x 等于 y\n" );
   }
   else
   {
      printf("x 不等于 y\n" );
   }
   if ( x < y )
   {
      printf("x 小于 y\n" );
   }
   else
   {
      printf("x 不小于 y\n" );
   }
   if ( x > y )
   {
      printf("x 大于 y\n" );
   }
   else
   {
      printf("x 不大于 y\n" );
   }
    int t;
   t = x;
   x = y;
   y = t;
   if ( x <= y )
   {
      printf("x 小于或等于 y\n" );
   }
   if ( y >= x )
   {
      printf("y 大于或等于 x\n" );
   }

   return 0;
   }

   程序运行的结果如下:
     C/C++运算符超详细讲解(系统性学习day5),Ubantu和C语言学习,学习,c语言,c#,开发语言
        
       
        
   
     

 

 四、逻辑运算符

含义:

用于连接多个条件的运算符,结果也是为真(1)或假(0),结合性为从右到左

(假设实例中的变量x的值为0,变量y的值为1)
运算符  描述 实例
&& 称之为逻辑与运算符,当且仅当俩个操作数都不为零时,条件为真。 A&&B为假
|| 称之为逻辑或运算符,当俩个操作数存在人一个非零时,条件为真。 A||B为真
称之为逻辑非运算符,用来逆转操作数的逻辑状态。将真变为假,假变为真。 !(A&&B)为真

下面通过一个实例代码来帮助大家更好的理解:

#include <stdio.h>

int main()
{
   int x = 20;
   int y = 10;

   if ( x && y )
   {
      printf("条件1为真\n" );
   }
   if ( x || y )
   {
      printf("条件2为真\n" );
   }

   x = 0;
   y = 10;
   if ( x && y )
   {
      printf("条件3为真\n" );
   }
   else
   {
      printf("条件3为假\n" );
   }
   if ( !(x && y) )
   {
      printf("条件4为真\n" );
   }

   return 0;
}


程序运行的结果如下:

C/C++运算符超详细讲解(系统性学习day5),Ubantu和C语言学习,学习,c语言,c#,开发语言
       
         

              

五、赋值运算符

含义:

赋值运算符就是将某个值赋给某个指定的变量,结合性为从右到左

运算符  描述 实例
简单的赋值运算符,把右边的操作数赋给左边操作数     C=A+B将把A+B的值赋给C
+= 加且赋值运算符,把左边操作数加上右边操作数的结果赋值给左面的操作数  C+=A相当于C=C+A
-=   减且赋值运算符,把左面的操作数减右面操作数的结果赋值给左面的操作数 C-=A相当于C=C-A
*= 乘且赋值运算符,把左面的操作数乘以右边的结果赋值给左面的操作数 C*=A相当于C=C*A
/= 除且赋值操作符,把左面的操作数除以右面的操作数的结果赋值给左面的操作数 C/=A相当于C=C/A
%= 求模且赋值运算符,求两个操作数的模赋值给左边的操作数 C%=A相当于C=C%A
<<=   左移且赋值运算符 C<<=2等同于C=C<<2
>>= 右移且赋值运算符 C>>=2等同于C=C>>2
&= 按位与且赋值运算符 C&=2等同于C=C&2
^= 按位异或且赋值运算符 C^=2等同于C=C^2
|= 按位或且赋值运算符 C|=2等同于C=C|2

 下面通过一个实例代码来帮助大家更好的理解:      

#include <stdio.h>
 
int main()
{
   int a = 21;
   int c ;
 
   c =  a;
   printf(" = 的运算符实例,c 的值 = %d\n", c );
 
   c +=  a;
   printf("+= 的运算符实例,c 的值 = %d\n", c );
 
   c -=  a;
   printf("-= 的运算符实例,c 的值 = %d\n", c );
 
   c *=  a;
   printf("*= 的运算符实例,c 的值 = %d\n", c );
 
   c /=  a;
   printf("/= 的运算符实例,c 的值 = %d\n", c );
 

   c <<=  2;
   printf("<<= 的运算符实例,c 的值 = %d\n", c );
 
   c >>=  2;
   printf(">>= 的运算符实例,c 的值 = %d\n", c );
 
   c &=  2;
   printf("&= 的运算符实例,c 的值 = %d\n", c );
 
   c ^=  2;
   printf("^= 的运算符实例,c 的值 = %d\n", c );
 
   c |=  2;
   printf("|= 的运算符实例,c 的值 = %d\n", c );
 
  return 0;
}

   程序运行的结果如下:

C/C++运算符超详细讲解(系统性学习day5),Ubantu和C语言学习,学习,c语言,c#,开发语言
       
      
        
        
        
   
        

        

六、运算符的优先级 

 含义:

运算符的优先级往往会影响一个表达式的运算的结果,比如最常见的就是乘除运算的优先级大于加减运算。

类型 运算符 结合性
乘除  *   /   % 从左到右
加减  +  - 从左到右
后缀 () [] ++ --  从左到右
一元 +  -  ! ~ ++ --(type)* & sizeof 从右到左
移位  <<  >> 从左到右
关系 <<= >>= 从左到右
相等与不等 ==   != 从左到右
位与AND & 从左到右
位异或XOR     ^ 从左到右
位或OR  | 从左到右
逻辑与AND && 从左到右
逻辑或OR || 从左到右
条件 ?: 从右到左
赋值  =  +=   -=   *=   /=    %=    >>=   <<=   &=  ^= |= 从右到左
逗号 , 从左到右

   

 


总结

        本篇文章详细地讲了C语言的运算符,希望能够帮到大家!

       以后还会给大家展现更多关于C语言的其他重要的基础知识,感谢大家支持懒大王!

       希望这篇博客能给各位朋友们带来帮助,最后懒大王请来过的朋友们留下你们宝贵的三连以及关注,感谢你们!

 

到了这里,关于C/C++运算符超详细讲解(系统性学习day5)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)

                                                        懒大王感谢大家的关注和三连支持~    目录 前言 一、并发服务器 1.进程并发服务器 实例代码如下:  2.线程并发服务器 实例代码如下:  二、域通信 域通信TCP实例代码如下:  三、广播与组播(UDP)  1.广播 实例代码

    2024年02月05日
    浏览(37)
  • C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)

    目录 前言 一、system V IPC对象图解 1.流程图解: ​编辑 2.查看linux内核中的ipc对象:  二、消息队列 1.消息队列的原理 2.消息队列相关的API 2.1 获取或创建消息队列(msgget)  实例代码如下: 2.2 发送消息到消息队列中  实例代码如下: 2.3 从消息队列中获取消息   实例代码如

    2024年02月08日
    浏览(25)
  • 初识C语言——详细入门(系统性学习day4)

    目录 前言 一、C语言简单介绍、特点、基本构成 简单介绍: 特点: 基本构成: 二、认识C语言程序 标准格式: 简单C程序: 三、基本构成分类详细介绍    (1) (2)数据类型 计算机中常用存储单位 数据类型的取值范围 打印输入类型 (3)常量和变量 常量的分类:

    2024年02月08日
    浏览(27)
  • C/C++进程超详细详解【中部分】(系统性学习day07)

    目录 前言 一、守护进程 1.概念 2.守护进程创建的原理(如图清晰可见)  3.守护进程的实现(代码块) 二、dup和dup2 1,复制文件描述符 2.文件描述符重定向 三、系统日志 1,打开日志 2,向日志中写消息 3,关闭日志 四,文件锁 1.概念 2,给整个文件上锁 实例代码如下: 

    2024年02月08日
    浏览(38)
  • C/C++进程超详细详解【上部分】(系统性学习day06)

    目录 前言 一、进程基础 1.进程概念 2.进程特征 3.进程状态(如图清晰可见) 4,进程的标识 实例代码如下: 5.进程的种类 实例shell脚本程序如下: 二、进程API 1.创建子进程 实例代码如下: 2.exec函数族  函数族讲解图如下所示: 实例代码如下所示:  3.结束进程 实例代码如下

    2024年02月08日
    浏览(29)
  • C/C++进程超详细详解【下部分】(系统性学习day8)

    前言 一,有名管道通信 1 .概念 2 .创建有名管道 实例代码如下: 二、信号通信 1 .概念 2 .用户进程对信号的响应方式 3. 用户进程对常用信号的缺省操作 4. 信号处理流程 5. 信号相关函数(系统调用)  5.1 kill - 给指定进程发送信号 实例代码如下:  5.2 raise() --给当前进程发送信

    2024年02月08日
    浏览(34)
  • Dart 运算符重载,详细介绍

    Dart 支持运算符重载,它允许我们重载内置的运算符以执行自定义操作。在 Dart 中,我们可以通过实现一些特定的方法来重载运算符。 下面是一些常用的运算符和它们对应的 Dart 方法: + : operator +(Object other) `` : operator -(Object other) `` : operator *(Object other) / : operator /(Obje

    2024年02月08日
    浏览(33)
  • MySQL常用运算符详细介绍

     在 MySQL 中,可以通过运算符来获取表结构以外的另一种数据。例如,学生表中存在一个 birth 字段,这个字段表示学生的出生年份。如果想得到这个学生的实际年龄,可以使用 MySQL 中的算术运算符用当前的年份减学生出生的年份,求出的结果就是这个学生的实际年龄了。

    2024年02月08日
    浏览(32)
  • python运算符&用法的详细介绍

    目录 1.算数运算 2.比较运算符 3.成员运算符 4.逻辑运算 5.赋值运算  附: 类型转换 1.算数运算 运算符:+加     -减     *乘     /除     //整除     % 余数     **幂运算   多用于整数、浮点数进行计算 + 也可用于字符串,拼接符,*可打印输出多次相同的字符串 注意:

    2024年02月09日
    浏览(33)
  • C# 扩展运算符(...)的详细解析

    在C#编程中,扩展运算符(…)是一种非常有用的特性,它可以将一个数组或集合转换成一个可迭代的序列。扩展运算符在C# 7.0及以后的版本中引入,提供了一种简洁的方式来创建数组、列表或集合的实例,尤其是在需要传递多个参数时。本文将详细介绍C#扩展运算符的概念、

    2024年04月22日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包