(类型)强制类型转换,用法如下图所示:

第三课笔记_操作符

只需要在想要转换类型的值前面加上(),括号里面的是放自己想要转换的类型,但一般不建议这么做

关系操作符:  >   >=   <    <=    !=(不等于​)    ==(判断相等)

逻辑操作符

&&(逻辑与)

当两边同时为真时才为真,0为假,1为真;

||(逻辑或)

当两边有一方为真时,就为真,只有同时为假时才判断为假;

条件判断符

也叫三目操作符

exp1?exp2:exp3        exp    表达式

如:max = (a>b?a:b);

逗号操作符

exp1,exp2......expn

位操作符

&(按位与)

如:a = 3,b = 5;

a&b = 1怎么得到1的呢,

就是同将值转换为二进制来进行判断,将每个相等权重的位来进行判断

只有同时为真时才为真,所以可以看的出来是等于1的

011

101

001

|(按位或)

如:a = 3,b = 5;

a|b =7 当有一个为真时就判断为真,只有都是假的时候才为假也就是0 

011

101

111

^(按位异或)

如:a = 3,b = 5;

a^b =6 当有一个为真时就判断为真,当同时为真时就为假;

也就是当对应的二进制位相异时,等于1;

当对应的二进制位相同时,等于0; 

011

101

110

——————————————————————————————————————————分割线

负数在内存中存储的时候,存储的是二进制的补码

使用的或者说打印出来的是这个数的原码

原码——>反码——>补码

原码——>反码:是将原码的二进制位按位取反,最高位的那个数也就是第一个数字保持不变;

反码——>补码:是在反码的基础上加上1

权重最高的那个数 0代表是正数,1代表的是负数。

如:a = 0;b = ~a;      ~为取反

00000000000000000000000000000000     取反得到

11111111111111111111111111111111     这个为补码,打印出来的是原码,所以要转换

10000000000000000000000000000000     反码

10000000000000000000000000000001     原码     在反码的基础上加1

所以 b = -1


++ --

前置++,先++,再使用;

后置++,先使用,再++;

前置--,先--,再使用;

后置--,先使用,再--;

________________________________________________________________________________________________________________________________

常见关键字

auto   break   case   char   const   continue   default   do   double   else   enum   

float   for   goto   if   int   long   register   return   short   signed   sizeof   tatic

struct   switch   typedef   union   unsigned   void   volatile   while   extern

auto:每个变量前面都会自动生成一个auto,所以都会把它隐藏起来

register:寄存器关键字,编译器不会直接开放寄存空间,但会建议把变量定义为寄存器变量

signed:有符号数,int a = 10等价与 signed int a = 10只是把signed省略

unsigned:无符号数  定义的数都为正数

struct:结构体关键字

uncin:联合体/共用体

void:无/空

typedef

顾名思义是类型定义,这里应该理解为类型重命名

如:

unsigned int a = 10;

typedef unsigned int u_int ;

将nusigned int 这个类型名重新定义为u_int,两个方法构造出来的值没有任何差别


extern 

用来调用外部变量或者函数


static 

用来修饰变量

修饰局部变量:局部变量的生命周期变长,变量会从原来的不累计变为累计

修饰全局变量:改变了变量的作用域——让静态的全局变量只能在自己所在的源文件内部使用,出了源文件就无法使用

修饰函数:改变了函数的作用域。但这个说法是不准确的,可以认为是static改变了函数的外部链接属性

从外部链接属性——>内部链接属性

#define

#define 定义的标识符常量:#define MAX 10;

#define 定义的宏:

#define MAX(X,Y) (X>Y?X:Y)

指针

指针变量,用来存放地址的

& 取地址符   %p 打印地址     

int *  存地址(当变量类型为int 时)(如果类型是其他类型时,只需要相应的改变即可)

*解引用操作符

如:

int a = 10;

int* p = &a;     //将a的地址存到p

*p = 20          //*p就是等于a

指针大小:在32位平台上是4个字节,在64位平台上是8个字节;