**操作符**
			<<左移操作符(对应的二进制序列左移一位)
		   >>右移操作符
		   int a=1;
			 int b=a<<1;(00000000000000000000000000000001)
			 
			 b=2(00000000000000000000000000000010)
			 
			 
			 位操作:二进制位操作
			 &按位与,|按位或,^按位异或
			 int a=3
			 int b=5;
			 int c=a%b;
			 (3:011         5:101)
			 十进制转化位二进制:1111(1*2^3+1*2^2+1*2^1+1*2^0)
			  按位与;同是为真是为1
				按位或:有一个为真时为1
				按位异或:都是1,都是0时为0;一个是1一个是0时为1;(对应的二进制位相同为0相异为1)
				
				
				
				a+=10(a=a+10)复合赋值符;
				
				
				单目操作符,双目操作符,三目操作符:
				单:一个操作数   双:两个操作数
				三:三个操作数
				C语言中0为假非0为真
				int a=2;
				!a=0
				
				
				
				
				
				sizeof求类型的大小(变量或者类型所占空间大小按字节打印)
				sizeof(a)=sizeof (int)=sizeof a
				也可以求一个数组大小:
				int arr[10];十个整形元素的数组大小是40个字节
				sizeof (arr);大小是40 字节
				数组元素的个数:数组总大小除以每个元素的大小;
				int sum=sizeof(arr)/sizeof(arr[0])(数组总的大小)
				
				
				
				\0   0    '0'区分
				\0的ASCLL是0;
				
				
				
				
				
				
				
				
				
    ~按位取反:
		~0的值:00000000000000000000000000000000
		取反    :    11111111111111111111111111111111
		
		
		
		只要是整数在内存中存储的是补码,整数中的正数原码反码补码都相同
		负数在内存中存储的是补码,打印的是原码
		例子:
		原码是直接按照正负写出的二进制序列
		反码是符号位不变其他位按位取反
		补码是反码加一
		
		-2的原码:10000000000000000000000000000010
		反码:1111111111111111111111111111101
		补码:反码加一:111111111111111111111111111111111111110
		
		
		
		
		
		
		
		
		--操作符++操作符:
		int a=10;
		int b=a++;(后置加加)
		所以得出b的值是10,a是11;
		int b=++a;(前置加加)
		所以b值是11,a的值是11;
		
		
		
		
	
	
	(类型):强制转换
	int a=(int)3.14;强制转换:3.14是double类型强制转换成int 类型
	
	
	
	
	关系操作符:>,<,==,>=,<=
	
	
	
	0表示假一切非0表示真:
	&&逻辑与||逻辑或
	int a=3;
	int b=5;
	int c=a&&b;
	c的值是1;(a和b都是真所以c的值也是真)
	
	
	
	
	
	
	
	
	
	三目操作符:
	exp1?exp2:exp3:如果表达式1的值是真的话输出表达式2的值作为最终结果,如果表达式1的值是假的话输出表达式3的值作为最终结果。
	
		
				
				
				
		逗号表达式:
  
		
		下标:
		int arr[0]={0};
		arr[4];(下标引用操作符)
		Add(a,b);(函数调用操作符)
		
		
		
		
	      常见的关键字:(不能和变量名冲突)
		int  float .........c语言内置的关键字;
		auto:局部变量的前面省略了auto
		break,case;
		extern:其他源文件的变量可以被引用
		register:寄存器关键字(计算机存储数据可以存在硬盘,内存,寄存器,高速缓存)
		硬盘500g  内存4/6/8g  高速缓存   寄存器     ——————访问速度逐渐加快,造价越高
		                                                                                            空间逐渐减小
		CPU中央处理器:从内存拿数据到CPU计算;内存访问速度慢CPU访问速度快;
		                              从寄存器里面拿速度更快,让内存的东西放到寄存器
																	
																	
		int main()
		{
		         register int a =10;(a定义为寄存器变量)a经常使用时
						 
						 return 0;
		}
		
		
		
		
		
		
		
		
		
		
		
		
		int定义的变量是有符号的;
		unsigned int num无符号数
		
		
		
		
		
		struct结构体关键字   union联合体、
		typedef:类型重定义
		
		typedef unsigned int u int;
		unsigned int=u int ;
		
		
		局部变量用完时销毁;
   void    text ()            a的值一直是1
	 {
              int a=1;
							a++;
							printf(“a=%d"\n,a);
		}
		
		加上static:
		void   text()                    a的值逐渐加一
		{
		      static     int a=1;
         a++;
					 printf("a=%d"\n,a);
		}
	    
      所以当static修饰局部变量时,生命周期延长了;出了作用域不在销毁;
			当static修饰全局变量时:
			加上static时改变了作用域,不可以在别的文件中使用;
			
			总结:static修饰局部变量是改变了生命周期;修饰全局变量是改变了作用域,只能在当前文件中使用,出了该文件不能使用;
			
			static修饰函数时改变了函数的链接属性,改变了作用域不可以在别的文件中使用;
			普通函数具有外部链接属性,但是被static修饰后无法被链接;