基本数据类型所占存储空间
#include <stdio.h>
//头文件
//main函数有且只有一个
int main()
{
char c;
short s;
int i;
float f;
double d;
long l;
long long ll;
//字符串打印函数
printf("char:%d\n",sizeof(c));
printf("short:%d\n",sizeof(s));
printf("int:%d\n",sizeof(i));
printf("double:%d\n",sizeof(d));
printf("long:%d\n",sizeof(l));
printf("long long:%d\n",sizeof(ll));
printf("float:%d\n",sizeof(f));
return 0;
}
char- 字符型数据类型
char c = 'a';
1、该类型创建的变量及常量,在内存中占用1个字节空间,所以只能存储一个字节的内容,通常是一个字符。
2、取值范围可以是0~255也可以是-128到+127。
3、char类型常变量通过ASCII编码将字符转换成对应数字存储到8个二进制位,也就是一个一节
4、ASCII编码常用取值仅位0-127,至于127-255则位预留不常用
ASCII编码表(图片来自于网络,如有侵权请告知删除)
short int-短整数型数据类型
short s = 10;
32位及64位平台均占用2个字节
取值范围:-32768~32767
int-整数型数据类型
int i = 10;
32及64位平台均占用4个字节
个别编译器、以及51单片机16位平台c语言中占用2个字节,可取值范围-32768~32767
取值范围:正负2的32次方:-2147483648~2147483647
long int-长整数型数据类型
long l = 100;
32及64位平台均占用4个字节,但是在Mac系统及Linux64位系统占用8个字节
取值范围:-2^32~2^32-1
long long int-长长整形数据类型
long long ll = 1000;
32及64位平台均占用8个字节
float-单精度浮点型数据类型
float f = 3.14f;
float f = (float)3.14;
注:编译器会将小数默认为是double类型,double存储需要8个字节,直接将小数放到float会因为放不下报错,所以需要在后面加f,或者强制类型转换
32及64位平台均占用4个字节
取值范围:(取值范围算法较为复杂,暂不深入研究)
正数:1.4E-45~3.4E+38
负数:-3.4E+38~-1.4E-45
double-双精度浮点型数据类型
double b = 3.14;
32及64位平台均占用8个字节
取值范围:(取值范围算法较为复杂,暂不深入研究)
正数:4.9E-324~1.7E+308
负数:-1.7E+308~-4.9E-324
科学计数法
3e5表示3*10^5
3e-5表示3*0.1^2
register修饰符:将变量建议系统放在寄存器中
1、无法取地址
2、只能修饰字符型及整形数据
3、寄存器中存取数据速度快,但不一定真的存放在寄存器中
static:静态修饰符,修饰变量为静态变量
const:常量修饰符
所修饰变量改变为常量
auto:没用
extern:外部函数及变量声明
将外部变量及函数在当前页声明