初学c课程笔记整理2-->>运算符

是什么?有什么用?用在什么地方?(理解)
养成良好的编程习惯;
培养编程思想;
写代码之前应该先分析需求,分析完需求再开始写代码;(写注释)
 
1.运算符
运算符是告诉编译程序执行特定算术或逻辑操作的符号。
 
   运算符分类:
按照功能划分:
       算术运算符
       关系运算符与逻辑运算符
       按位运算符
运算符根据参与运算的操作数的个数分为 :
       单目、双目、三目预算符。
优先级:     (圆括号)优先
                    !(非) // 注意
                     ↑
                    算术运算符 +、-、*、/、%
                     ↑
                    关系运算符   >、<、<=、>=、==
                      ↑
                    &&和||  // 注意
                      ↑
                    赋值运算符   = 、+=、-=、*=、/=、%=
 
算数运算符
 
名称符号说明
加法运算符 + 双目运算符,即应有两个量参与加法运算。如a+b,4+8等。具有左结合性。
减法运算符 - 双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合 性。
乘法运算符 * 双目运算符,具有左结合性。
除法运算符 / 双目运算符,具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型
求余运算符 (模运算符) % 双目运算符,具有左结合性。要求参与运算的量均为整型,不能应用于float或double 类型。求余运算的结果等于两数相除后的余数,整除时结果为0。
 
整数除于整数,求出来的结果依然是整数
浮点型赋值给整型会损失小数部分
%两侧必须都为整数
利用%求出来的余数是正数还是负数,由%左边的被除数决定,被除数是正数,余数就是正数,反之则反
⚠️算数运算注意点
自动类型转换和强制类型转换。

⚠️求余预算注意:
   m%n 求余,相当于m/n 获取余数
    (1)n等于0 无意义
    (2)m等于0 结果为0
    (3)m>n 正常求余 如:8 % 3 = 2
    (4)m<n 结果是m 如:2 % 4 = 2 1 % 4 = 1 3 % 8=3
运算结果的正负性取决于第一个运算数,跟后面的运算数无关
赋值运算符
    简单赋值运算符: =
    复合赋值运算符: +=、-=、*=、/=、%=
赋值表达式
    什么是表达式?
     将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来的有意义 的式子称为表达式。
    例如:算术表达式、逻辑表达式、字符表达式等。
表达式的特点:
     表达式是一个意义的式子,所以一定有返回值
    由“=”连接的式子称为赋值表达式。
        例如: x = a + b;
       等号=左边只能是变量,不能是常量,下面的写法是错误的:10 = 10 + 5;
       凡是表达式可以出现的地方均可出现赋值表达式
赋值运算符的结合性
     赋值运算符具有右结合性, 而且优先级比算术运算符低
         例如: int a = 3 + 5; 会先计算3 + 5, 然后再把结果赋值给a
         例如: int a = b = c = 5; 右结合性可理解为a=(b=(c=5))
复合赋值运算符
    在赋值符“=”之前加上其它二目运算符可构成复合赋值符。
    + /= 除后赋值 变量/=表达式 如:a/=3;即a=a/3
    + \*= 乘后赋值 变量\*=表达式 如:a\*=3;即a=a*3
    + %= 取模后赋值 变量%=表达式 如:a%=3;即a=a%3
    + += 加后赋值 变量+=表达式 如:a+=3;即a=a+3
    + -= 减后赋值 变量-=表达式 如:a-=3;即a=a-3
 
前缀表达式:++x, --x;其中x表示变量名,先完成变量的自增自减1运算,再用x的值作为表达式的值;即“先变后用”,也就是变量的值先变,再用变量的值参与运算。
后缀表达式:x++, x--;先用x的当前值作为表达式的值,再进行自增自减1运算。即“先用后变”,也就是先用变量的值参与运算,变量的值再进行自增自减变化。
  • int num = 3  
      ++a a++
    表达式值 4 3
    变量num值 4
    ⚠️ 注意
自增、自减运算只能用于单个变量,只要是标准类型的变量,不管是整型、实型,还是字符型变量等,但不能用于表达式或常量。如:++(a+b), 与5++, const int N=0; N++; 等都是错误 的。 而i+++j++、++i+(++j)、++a+b++、++array[--j]等,这些都是合法的。
sizeof运算符
sizeof可以用来计算一个变量或一个常量、一种数据类型所占的内存字节数
        格式: 用法:sizeof(常量/变量)
  ⚠️ 注意: sizeof不是一个函数, 是一个运算符.
“,”逗号运算符
        格式:表达式1,表达式2,表达式3...
 ⚠️注意:
逗号表达式的运算过程是:先算表达式1,再算表达式2,依次算到表达式n
整个逗号表达式的值是最后一个表达式的值
 
关系运算符
在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。
序号 运算符结合性
1 > 大于 如:a>b a>3 5>4 1>2 左结合
2 < 小于 如:a<c d<3 2<5 左结合
3 >= 大于等于 如: a>=1 d>=c 左结合
4 <= 小于等于 如: a<=0 i<=19 左结合
5 == 等于 i==3 a==b 左结合
6 != 不等于 a!=b c!=5 左结合
关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。(判定常用)
⚠️关系运算符优先级
关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者
 
逻辑运算符
    C语言中提供了三种逻辑运算符:
   &&(与运算) 左结合性
       ||(或运算)    左结合性
       !(非运算)
    > 逻辑运算的结果只有2个:“真”为1,“假”为0
逻辑与
格式:
    “条件A && 条件B”
运算结果:
    只有当条件A和条件B都成立时,结果才为1,也就是“真”;其余情况的结果都为0,也就是“假”。因此,条件A或条件B只要有一个不成立,结果都为0,也就是“假”
    口诀:一假则假
逻辑或
-格式:
    “条件A || 条件B”
运算结果:
    当条件A或条件B只要有一个成立时(也包括条件A和条件B都成立),结果就为1,也就是“真”;只有当条件A和条件B都不成立时,结果才为0,也就是“假”。
     口诀:一真为真
逻辑非
格式:
    “! 条件A”
 运算结果:
    其实就是对条件A进行取反:若条件A成立,结果就为0,即“假”;若条件A不成立,结果就为1,即“真”。也就是说:真的变假,假的变真。
    口诀:真变假,假变真
     按位运算符
用于二进制的运算,所以放在进制详细叙述。
按位与
"&"
按位或
"|"
左移
">>"
右移
"<<"
posted @ 2015-10-19 22:08  a滴答  阅读(234)  评论(0编辑  收藏  举报