C语言之基本数据类型

基本数据类型

基本数据类型由 11 个关键字组成:int、long、short、unsigned、char、float、double、signed、_Bool、_Complex 和 Imaginary。

  • 有符号整型
类型 长度
int 至少占 16 位(根据硬件选择合适大小,32位,64位编译器 int 为32位)
short 或 short int 至少占 16 位,最大 short 小于或等于 int 最大类型整数
long 或 long int 至少占 32 位,大于或等于最大 int 类型整数
long long 或 long long int 至少占 64 位,大于或等于最大 long 类型整数
  • 无符号整型
    只能用于表示零和正整数,前面添加 unsigned 表明该类型是无符号整型。
  • 字符类型
    表示一个字符要占用 1 个字节内存,有些编译器使用有符号 char,有些使用无符号 char。
  • 布尔类型
    表示 true 和 false ,是无符号 int 类型,C 语言用 1 表示 true,0 表示 false。
  • 实浮点类型
    可表示正浮点数和负浮点数。
类型 有效范围
float 至少 6 位有效数字
double 至少 10 位有效数字和更大的指数
long long 比 double 更多有效数字和更大的指数
  • 复数和虚数浮点数
    虚数是可选的类型,复数的实部和虚部都基于实浮点类型来组成。

基本数据类型的应用

代码示例

#include
#include
int main(void) {
	int x = 100;
	int32_t me32 = 45933945;                         //类型别名是精确宽度整形类型
	float aboat = 32000.0;
	double abet = 2.14e9;
	long double dip = 5.32e-5;
	unsigned int un = 3000000000;
	short end = 200;
	long big = 65537;
	long long verybig = 12345678908642;
	int i = 2147483647;
	char grade = 'A';                                //8 位,字符常量视为int非char类型
	char gradebig = 'FATE';                          //字符常量视为int非char类型,取后 8 位,打印 E 
	char voice = '\a';
	printf("无符号数:un = %u  and not %d\n", un, un);            //内存中的表示完全相同
	printf("short 类型:end = %hd  and  %d\n", end, end);         //short 会自动转 int,h修饰符,显示较大整数截断成 short 类型值
	printf("long 类型:big = %ld  and  not %hd\n", big, big);                //取低 16 位等于 1
	printf("long long 类型:verybig = %lld  and  %ld\n", verybig, verybig);  //取低 32 位
	printf("打印进制:%d = %o =  %x\n", x, x, x);                //显示进制数
	printf("进制显示:%d = %#o =  %#x\n", x, x, x);              //带进制显示进制数
	printf("溢出处理:%d  %d  %d\n", i, i + 1, i + 2);           //溢出会从开始计算
	printf("字符打印:%d  %d\n", grade, gradebig);               //超出单字符取低 8 位
	printf("警报字符:%c\n", voice);                             //打印可发出警报声
	printf("Study xu,\"a \\ is a backslash\"\n");                //转义字符的应用
	printf("me32 = %d\n", me32);                                 //可移植类型
	printf("me32 = %" PRId32 "\n", me32);                        //可移植类型应用
	printf("%f can be written %e\n", aboat, aboat);              //float 数字,科学记数法
	printf("%f can be written %e\n", abet, abet);                //double 数字,科学记数法
	printf("%Lf can be written %Le\n", dip, dip);                //long double 数字,科学记数法
	//sizeof 以字节为单位给出对象的大小
	printf("Type char has a size of %zd bytes.\n",sizeof(char));   //打印 char 长度 1 byte
	printf("Type int has a size of %zd bytes.\n", sizeof(int));    //打印 int 长度 4 byte
	printf("Type long has a size of %zd bytes.\n", sizeof(long));  //打印 long 长度 4 byte
	printf("Type float int has a size of %zd bytes.\n", sizeof(float));  //打印 float 长度 4 byte
	printf("Type double int has a size of %zd bytes.\n", sizeof(double));  //打印 double 长度 8 byte
	return 0;
}

运行结果:
C语言之基本数据类型_第1张图片

你可能感兴趣的:(C,语言)