一、数据类型
signed:可存取有符号数,包括正负数
unsigned:只能存取无符号数,正数
1byte=8bit
正数的原反补码相同,负数的反码等于等于原码的符号位不变,其它位依次取反,补码等于反码加1,0为正,1为负
二、常量
八进制数以0开头 例如06434 3位
十六进制以0X开头 例如0Xd1c 4位
-1.176e+10表示1.176*10的10次方-
--3.5789e-8表示-3.5789*10的负8次方
-通常表示特别大或者特别小的数,可不写
ASCII码大小写字母差32,字符0和数字0差48;
‘A’+ ' ' = 'a' ' ’表示32
0='0'-48
标识常量 #define PI 3.1415926
宏只是原样展开,并不计算,可加括号避免出错
三、变量
变量名由字母、数字、下划线组成,不能已数字开头,不能和C的关键字重名
变量在内存空间中的首地址,称为变量的地址。
寄存器变量无法获取地址
static变量默认值为0
四、运算符
float/double不能取余
逻辑与''&&'':逢0截止,后面的不再执行
逻辑或''||'':逢1截止,后面的不再执行
~ |
位逻辑反 |
~a |
& |
位逻辑与 |
a&b |
| |
位逻辑或 |
a|b |
^ |
位逻辑异或 |
a^b(相异为真) |
>> |
右移位 |
a>>1() |
<< |
左移位 |
b<<4(左移右边补0,乘以2的关系) |
#include <stdio.h>
voin main(int argc,char *argv[]){
unsigned char x=0x17,y;
y=~x;
printf("%#x\n",y);
return 0;
}
上面的x代表16进制,#代表输出结果带着0x
逗号运算符,括号中依次运算,取最后一个
sizeof(类型或变量名):用来计算内存所占空间
#include <stdio.h>
voin main(int argc,char *argv[]){
int a=5;
long b=6;
printf("%d %d %d\n",sizeof(a),sizeof(b));
printf("%d %d %d\n",sizeof(int),sizeof(long));
return 0;
}