宏定义,条件编译,const static

一 位运算

只包含整数运算(int short double char) 按位&----------只要有一个为零则为零,按位 | 有1为1,同0为0 , 异或 ^ --------相同为0,不同为1;取反~:逐位取反。

        a : 0000 0011    3 

        b : 0000 0101    5

a  & b : 0000  0001    1

a   |  b : 0000 0111     7

a  ^  b : 0000 0110     6

(a ^b)^a =b; a^b 相当于保存了一个状态。 利用这个可以来完成两个数的交换

a  = a  ^  b ;// 0011 ^ 0101 = 0110

b =  a  ^  b;//  0110 ^ 0101  = 0011

a  = a  ^  b;//  0110 ^ 0011  = 0101  

//左移运算   低位补零

a  = a << 1; 

// c语言采用算术右移,高位补(与符号位相同) ,  逻辑右移,高位补1


二 宏定义 # define PI 3.1415926  预编译,编译之前做的操作


条件编译   #ifdef 

                 。。。。。

            #else

      。。。。

       #endif


const  用于限定一个变量不能被修改


const  int *p = &a , p指向的空间不能被修改。

//    int a  = 5;

//    const int *p = &a;

//   // *p = b; 这样会报错, p指向的空间被定义为const 不能被修改

//    int const *p2 = &a;

//    int *const p3 = &a;

//    int const * const p4 = &a;

    // const * 左侧表示指针指向的空间不能再被赋值了(当做常量对待),p1= = p2const*号之后表示指针变量在被定义完后不能被重新赋值(当做指针常量)

   //p4 表示自己是一个指针常量,同时指向的空间也是一个常量。


static   


//从定义到程序结束一直存在。在静态存储区域知道程序

//static 可以限定变量的有效范围仅在当前定义开始,到当前文件结束。

//通过static修饰函数,相当于把这个函数变成了私有函数(只能当前文件内调用),不允许外部文件来调用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值