变量名规则
字母数字下划线,不以数字开头
区分大小写
编译器只识别63个字符
两个下划线或下划线加大写字母开头保留给实现编译器及其实现的资源使用,一个下划线开头用作全局标识符
数据类型
关键字 | 占用存储空间 | 取值范围 | 占位符 |
---|---|---|---|
int | 4字节=32bit (至少16位) | 最高为为符号位, 0正号,1负号, -231-231-1 | %d %u %o八进制0开头 %x 16进制0#x #前缀 %p 指针地址 %s 字符串 |
short | 至少2字节=16bit | %hd | |
long | 8字节=64bit 至少32位 | %ld | |
char | 1字节=8bit | %c | |
float | 4字节=32位 | 最高位为符号位,8位指数位(带符号),23位尾数 | %f 默认6位小数 %.2f 2位小数 %2.2f 字符宽度为2,不够2补空格 %e指数计数法 |
double | 8字节=64位 | %lf |
数据存储方式
整型:采用二进制补码存储
原因:既要处理符号位,又要只进行加法运算,达到以某一种二进制形式的“码”直接相加就能得到正确结果所以使用了补码
正数的反码补码都是自己
负数的反码:符号位不变,其他位取反
负数的补码:反码+1
eg:-18
原码:10000000 00000000 00000000 00010010
反码:11111111 11111111 11111111 11101101
补码:11111111 11111111 11111111 11101110
浮点型:1位符号位 8位指数位 23位尾数位
eg:float x = 10.125f;
二进制表示:1010.001
二进制科学计数法:1.010001 X 2^3
符号位为整 指数位为3 尾数位为010001
指数位的起始值是127,如果此时指数为3,则指数位的值是127+3=130,即10000010
即存储为1 10000010 010001000.....
低地址保存数值的低位,高地址保存数值的高位,所以值为10.125的单精度浮点变量x的值是00 00 22 41
数据默认值
C语言中的全局变量和静态变量都是会自动初始化为0,堆和栈中的局部变量不会初始化而拥有不可预测的值
C++保证了所有对象与对象成员都会初始化,但其中基本数据类型的初始化还得依赖于构造函数
数据的上溢和下溢
整型溢出行为:
eg:short -1 0 1 .... 32767 -32768 ....