变量字节占用:
获取变量的内存大小:
字面值:
进制转换:
八进制:0开头
十六进制:0x开头
0x5a = 00000000 00000000 00000000 01100101
二进制转十进制(正数):的对应位置×2的n次方之和
eg:01010110=
十进制转二进制(正数):对2取余,直到被除数小于1为止,然后最低位为第一次除的余数,依次后排。
二进制转十进制(负数):取反加一,转十添负。
十进制转二进制(负数):去负转二,取反加一。
二进制、十进制、十六进制转换表:
位操作:
<< 左移一位 高位舍弃,低位补零
>> 右移一位 有符号数:左补符号位;无符号数:左补0
位操作不会修改存储区的内容
变量的声明与定义:
Static:定义一个静态的变量或者函数,定义完成之后该变量不能在其他文件中改变。
用法 static int a=0;
extern:如果在当前文件中要用到其他文件的变量或者函数,则需要用extern先进行外部声明,再去使用。
指针:
①指针变量永远存储地址数据。
②指针变量永远用于寻找另一个存储区。
(1)指针的使用:
int* p=NULL; //定义一个指针变量为p,此时该指针变量可以指向其他的变量
例如:p=&b; //将b的地址传给指针变量p,此时p指向b的首地址。
此时:printf(“%d”,p);的值为b变量的值。
注:指针定义时,所有指针都要初始化,不知道存谁的地址就用NULL(空指针)。
(2)指针支持加减整数:
int* p= NULL;
若此时进行p++则,每加1则进四个整数,相当于走四个字节。
若p的类型为char则每次自加1则进一个字节。
(3)跨函数使用存储区必须用指针。