美文网首页
2018-08-29C语言运算符-02

2018-08-29C语言运算符-02

作者: Ending_cy | 来源:发表于2018-08-29 18:24 被阅读0次

sizeof运算符

  • sizeof可以用来计算一个变量或常量所占的内存字节数
    标准格式: sizeof(常量 or 变量);
  • 其他格式
    sizeof 变量\常量;
  • int a = 10;
  • sizeof a;
  • sizeof 10;
    sizeof( 数据类型);
  • sizeof(float);
    sizeof不是一个函数, 是一个运算符, 该运算符的优先级是2

逗号运算符

  • 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式
  • 逗号运算符会从左至右依次取出每个表达式的值, 最后整个逗号表达式的值等于最后一个表达式的值


关系运算符

默认情况下,我们在程序中写的每一句正确代码都会被执行。但很多时候,我们想在某个条件成立的情况下才执行某一段代码
这种情况的话可以使用条件语句来完成,但是学习条件语句之前,我们先来看一些更基础的知识:如何判断一个条件是否成立


  • C语言中的真假性
    在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立,就是判断条件的“真假”
    怎么判断真假呢?C语言规定,任何数值都有真假性,任何非0值都为“真”,只有0才为“假”。也就是说,108、-18、4.5、-10.5等都是“真”,0则是“假”
    关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”
名称 符号 说明
大于运算符 > 单目运算符,具有左结合性
小于运算符 < 单目运算符,具有左结合性
大于等于运算符 >= 单目运算符,具有左结合性
小于等于运算符 <= 单目运算符,具有左结合性
等于运算符 == 单目运算符,具有左结合性
非等于运算符 != 单目运算符,具有左结合性

优先级的问题

  • 六个关系运算符中除了 == 和 != 比较低其他四个优先级都比他们高
  • 如果碰到==和!=在一起就看结合性,因为优先级是一样的

注意点:无论是float还是double都有精度问题, 所以一定要避免利用==判断浮点数是否相等


逻辑运算符

逻辑非运算符 ! 单目运算符,具有右结合性
逻辑与运算符 && 双目运算符,具有左结合性
逻辑或运算符 || 双目运算符,具有左结合性

  • 逻辑非
    格式: ! 条件;
    运算结果: 真变假,假变真 将最后的运算结果反过来如果是真就变假如果是假就变真
  • 逻辑与
    格式: 条件A && 条件B;
    运算结果:一假则假
    运算过程:只有条件A和条件B都是真的才会返回真
    如果"条件A"成立,"条件B"不成立,结果就为0,即“假”
    如果"条件A"不成立,不会再去判断"条件B"是否成立, 因为逻辑与只要一个不为真结果都不为真
  • 逻辑或
    格式: 条件A || 条件B;
    运算结果:一真则真
    运算过程:只要有一个条件为真就会返回真,只有当两个条件都为假时才会返回0
    如果"条件A"不成立,接着再判断"条件B"是否成立, 如果"条件B"成立,结果就为1,即“真”
    如果"条件A"成立, 不会再去判断"条件B"是否成立, 因为逻辑或只要一个为真结果都为真

三目运算符

  • 条件运算符是C语言的唯一的三目运算符,它需要3个数据或表达式构成条件表达式

格式: 表达式1 ?表达式2(结果A):表达式3(结果B)
示例: 是否结婚 ? 结婚 : 不结婚;

  • 求值规则:

    如果"表达式1"为真,三目运算符的运算结果为"表达式2"的值(结果A),如果"表达式1"假的话,那么结果就是"表达式3"的值(结果B)
  • 注意点
    条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符
    条件运算符?和:是一个整体,不能分开使用
    条件运算符的结合方向是从右至左

强制类型转换(显示转换) 自动类型转换(隐式转换)
(需要转换的类型)(表达式) 1.算数转换 2.赋值转换
  • 强制类型转换(显示转换)
    // 将double强制转换为int类型
    int a = (int)10.5;
  • 算数转换
    系统会自动对占用内存较少的类型做一个“自动类型提升”的操作, 先将其转换为当前算数表达式中占用内存高的类型, 然后再参与运算(也就是俗话说运算的时候小类型会被转化为大类型)
    当前表达式用1.0是double类型占用8个字节, 2是int类型占用4个字节
    所以会先将整数类型2转换为double类型之后再计算
    double b = 1.0 / 2;
  • 赋值转换
    赋值时左边是什么类型,就会自动将右边转换为什么类型
    int a = 10.6;

注意点:
参与计算的是什么类型, 结果就是什么类型


类型转换并不会影响到原有变量的值

相关文章

  • 2018-08-29C语言运算符-02

    sizeof运算符 sizeof可以用来计算一个变量或常量所占的内存字节数标准格式: sizeof(常量 or 变...

  • 「C语言入门到精通」C语言运算符 第02课

    【C语言入门到精通】C语言运算符 第02课 主要内容: 1.赋值运算符,复合算术运算符 2.算术运算符 3.关系运...

  • C语言02- 运算符、表达式、程序语句、编码风格

    C语言02- 运算符、表达式、程序语句、编码风格 7:运算符与表达式 7.1:运算符 只有一个操作数的运算符叫单目...

  • Java语言入门2

    Java语言中的运算符 算数运算符:+,-,*,/,%,++,-- 关系运算符:>,<,>=,<=,==,!= 布...

  • 06-Go语言运算符

    算术运算符 Go语言算术运算符 关系运算符 逻辑运算符 位运算符 其他运算符

  • C语言基础教程之运算符

    C语言内置运算符丰富到令人头皮发麻,C语言基础教程之运算符篇 C语言运算符 运算符是告诉编译器执行特定数学或逻辑函...

  • 【初识C语言】C语言中的运算符

    C语言中的运算符 1运算符和表达式 C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具。C语言的运算异常...

  • Python中的运算符

    1.1 概述 python语言支持以下的运算符: 算数运算符 比较运算符 赋值运算符 逻辑(关系)运算符 位运算符...

  • noip普及组1~2:语言入门、进阶

    语言入门 ①基本运算 算术运算符:+,-,*,/,%,++,-- 关系运算符:==,!=,>,<,>=,<= 逻辑...

  • Go语言基础之运算符

    运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算术运算符 运算符描...

网友评论

      本文标题:2018-08-29C语言运算符-02

      本文链接:https://www.haomeiwen.com/subject/aqjkwftx.html