C和指针第五章笔记

来源:互联网 发布:动态海报制作软件 编辑:程序博客网 时间:2024/06/05 16:00
  1. 移位操作符 左移时空出来的右边使用0补上
                               逻辑右移 右边使用0补上
                               算术右移  右边使用符号位补上
             左移操作符<< 右移操作符 >>
             对于无符号值 都是逻辑移位
                    有符号值 取决于编译器     
       2.  位操作符
              AND &
              OR   |
              XOR ^
      3.   赋值
           表达式的一种
          复合赋值符
+=,-=,*=,/=,%=
<<=,>>=, &=,^=,|=,
a+=expression;
a=a+(expression);
      4.单目运算符
!逻辑反操作
~对于整型操作数求补
-产生操作数的负值
+什么都不干
&产生他的操作数的地址
int a, *b;
b=&a;
*间接访问操作符,同指针一起使用,用于访问指针所指向的值
sizeof判断操作数的类型长度,以字节为单位表示,操作数既可以是一个表达式,又可以是一个变量,也可以是一个加上括号的类型名,其次,判断表达式的长度并不需要对表达式求值eg, sizeof(a=b+1)并没有对a求值
(类型)强制类型转换

++   在操作数之前的操作符在变量被使用之前增加他的值,而在操作数之后的操作符在变量值被使用之后才增加它的值
c=++a;//a增加至11,c=11
d=b++//b=11;d=10
抽象的说,前缀与后缀都是复制一份变量值的拷贝。用于周围表达式的的值就是这份拷贝,前缀操作符就是在复制以前增加变量的值,而后缀的表达式在于复制以后才增加变量的值
5.关系操作符
        > ,>=,<,<=,,!=,==
结果为0,假,其余非0值真
6.逻辑操作符

&& ||
7.条件操作符
expression1?expression2: expression3
假如expression1真,那就执行expression2;否则expression3
8.逗号操作符
expression1,expression2,……expressionN
将多个表达式分隔开来,自左向右逐个求值,以最后一个表达式作为逗号的值



2.1左值和右值

左值 可以出现在赋值号左边的东西(标明可以存储结果值的地点)


运算优先级低到高
逗号,赋值运算符,条件运算符,逻辑运算符,位操作符,关系操作符,移位,算术运算,类型转换,sizeof,&,*,前缀++,--, 单目运算符(-.+.~.!.--++前缀,->,   .  [])