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