第三节课qaq

算术运算符+ - * / %

运算的结果形式与参与运算的数的形式有关

(int a=9/2  结果为4  ) (float a=9/2  结果为4.000000 )( 但如果为float a=9/2 .0结果为 4.50000)

移位操作符<<  >>向左移为乘2  右移位除2
位操作符& |  ^ ~

&:相同位全为1则为否则为0    |:相同位有1就为1 否则为0

^:相同位相同则位0 相同位不同就为1  ~:每一位都取反

 

赋值操作符(a+=b: a=b+a)
单目操作符如果a不等于0则!a为0  如果a=0则!a为1

 

 单目操作符:操作数只有一个    双目:操作数有两个

 

 

按位取反 ~

int a=0    printf("%d",~a)则打印出的数字位-1     解题 过程(在计算机中所存的是数字的补码  打印的是原码 0在内存中存的是32位0  按位取反后的到32位1  32位1也是直接存在内存中的  因为32位1第一位是1 则存的这个数应该为负数  所以打印时要转为原码 即先减1再取反(符号位不去反)得到-1)   

计算机中 内存中存正数内存中就是该正数的二进制形式 因为正数的  补码原码反码相同   

 

a++先让这个表达式使用a,在赋给a=a+1
++a先让a=a+1在让这个表达式使用赋值后的a

 

 

关系操作符== (!=)> <  >=  <= 
三目运算(条件操作符)
逗号运算整个表达式的值取最后一个式子的值
强转:(要转的类型)数据列如 (int)3.13

 

逻辑操作符

&& (与运算); ||    (或运算)

1&&9=1    1||0=1 

 

Static 

 第一张图  调用test函数时创建了一个a=1出了这个变量的作用域后 变量就被销毁了    

第二张图 用static修饰变量  则变量就不会被销毁 在第二次使用时  函数中第一句话就没用了   然后a中存放的是2 自加后就存放的是3了

 Static 修饰局部变量 改变了变量的生命周期(本质上改变了变量的存储类型 )

 static修饰全局变量  使得这个全局变量只能在自己的源文件使用 其他的源文件就不能再使用了(全局变量可以被其他源文件使用是因为全局变量具有外部链接属性而被修饰后就变为内部链接属性了其他源文件就不能使用了)

 

static修饰函数  与修饰全局变量类似  将函数的外部链接改变为了内部链接

 

define定义宏

define可以定义符号    #define max 100

define可以定义宏  但是定义的宏相当与是替换了 运算 

#define  Add(x,y)  x+y

        printf("%d",add(1,4))输出值为5

如果写为 printf(“%d",4*add(1.4))输出值不等于20而是8    其相当于是4*1+4

如果想的到20 则写出  #define add(x,y) (x+y)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值