一、位运算
&:数学中的并且,遇0则清0
|:数学中的或者,1或0为1、1(0)或1(0)为1(0)
^:按位异或,如果两个相应的二进制位值不同则为1,否则为0。
~:取反,1变0 0变1
>>:右移,是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0或者补符号位
<<:左移,是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0
二、变量
1.静态变量:静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。
三、关键字
1.关键字extern:extern最基本的用法是声明全局变量的。这里需要注意两点,一是“声明”,二是“全局变量”;我们先来分析这两个概念。
声明:声明和定义是有区别的。声明不等于定义,声明只是指出了变量的名字,并没有为其分配存储空间;定义指出变量名字同时为变量分配存储空间,定义包含了声明。例如:
extern int i; //声明变量i,但没分配存储空间,还不能使用。
int i; //定义了变量i,并分配了空间,可以使用。
extern int i = 5; //定义了变量5
2.关键字const:const 是定义常变量的关键字。用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。