video 3

  1. ~指的是按位取反。此时“位”值的还是二进制位;
  2. ++k和k++的区别,前置++是先++再使用,后置++是先使用在++;
  3. 强制类型转换:在想要转换类型的前面加上括号然后给与相应的类型名称,进行强制类型转换。
  4. 三元操作符 ? :-----------a?b:c 指的是,a?a要为真的话输出的值为b,若为假的话输出的值为c ,举例,a>b?a:b,当a>b的时候输出为a相反输出为b。
  5. 只要是整数,内存中存储的都是二进制的补码。
    反码,原码,补码;
    正数的原反补相同。
    负数的原码直接照写,反码:原码的符号位不变,其他位按位进行取反。
    补码:反码+1。
  6. register 关键字,把所修饰的变量定义成寄存器变量。而register只是建议变成寄存器变量。寄存器是比高速缓存更快的处理东西的方式,相对来说存储空间更小。 sturct-结构体关键字。union-联合体/共用提关键字。typedef-类型重定义
typedef unsigned int u_int
u_int num=20 
  //unsigned int num =20;
  return 0;
  1. static 关键字让创建的变量不会被销毁,他所具有的值一直存在。
    修饰局部变量的时候,使局部变量的生命周期变长。作用域不变
    static修饰全局变量:全局变量被限制,不能在其他部分使用,即改变了全局变量的作用域,让静态的全局变量只能在自己所在的源文件内部使用,出了源文件就无法再使用了。全局变量只需要在一个源文件中定义,就可以作用域所有源文件
    static修饰函数:改变了函数的连接属性,普通的函数是具有连接属性的,而被修饰之后就只能在自己的源文件内使用。
    extern是用来声明外部符号的。
  2. #define定义的标识符常量————#define MAX 100这句话的意思是,在后面函数中所有的MAX都会被机器默认变成100;是常量。
    #define定义宏:宏是带参数的——#define MAX(X,Y) (X>Y?X:Y)即后面代码中所出现的MAX(X,Y)都将被默认为(X>Y?X:Y)。
  3. 一个字节就占一个内存空间。
  4. & 取地址符号
  5. 指针变量--用来存放地址的。p。*p是解引用操作符。在32位的平台上,他具有32个bit,也就是有4个字节。64位的平台上是8个字节。
int a=10;
int* p=&a;
printf("%p\n",p);
printf("%p\n",&a);
*p=20;
printf("a= %d",a)