基本数据类型介绍:
C语言提供了许多数据类型来描述生活中的各种数据,小数有浮点数类型,整数有整型,字符有字符串类型。只有写清了数据的类型,编译器才可以更好的帮我们处理数据,不会出现截断或者溢出。
下面盘点一下C语言中常用的内置数据类型:
声明数据类型的方法:
-
字符串
char; //字符串类型 [signed] char; //有符号字符串 unsigned char; //无符号字符串
-
整型
short [int]; //短整型 [signed] short [int]; //有符号短整型 unsigned short [int]; //无符号短整型 int; //整型 [signed] int; //有符号整型 unsigned int; //无符号整型 long [int]; //长整型 [signed] long [int]; //有符号长整型 unsigned long [int]; //无符号长整型 //c99中引入 long long [int]; //更长的整型 [signed] long long [int]; unsigned long long [int];
上图中 [ ] 标注部分为可省略部分,可以看出,数据在声明是默认为有符号,无符号和有符号的区别在于无符号的第一位不再作为符号位,数据使用范围与有符号不一样。有符号和无符号的可以使用 signed 或 unsigned 声明;
-
浮点数
float; //单精度浮点型 double; //双精度浮点型 long double;
有无符号与整型同理。
-
布尔类型
#include <stdbool.h>
#include <stdio.h>
int main()
{
_Bool flag = true;
if (flag){
printf("I like you");
}
return 0;
}
c语言中原来使用整数 0 来表示假,非 0 来表示真,没有专门的类型来判断真假。在C99中引入了布尔类型来专门表示,使用前需要加入头文件 <stdbool.h>
数据类型的长度:
每一种数据类型都有长度,长度不同,占用的内存与可用的数据范围也不同。
sizeof操作符:
sizeof 是一个关键字,也是一个操作符,可以计算数据类型的长度,单位为字节(Byte)。
sizeof 操作符的操作数既可以是类型也可以是表达式
sizeof(类型)
sizeof 表达式
sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的;
sizeof 的计算结果是 size_t 类型的,占位符用 %zd 。
下图是各类型的长度:
#include <stdio.h>
int main()
{
printf("%zd\n", sizeof(char)); //1
printf("%zd\n", sizeof(_Bool)); //1
printf("%zd\n", sizeof(short)); //2
printf("%zd\n", sizeof(int)); //4
printf("%zd\n", sizeof(long)); //4
printf("%zd\n", sizeof(long long)); //8
printf("%zd\n", sizeof(float)); //4
printf("%zd\n", sizeof(double)); //8
printf("%zd\n", sizeof(long double)); //8
return 0;
}
sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出大小:
#include <stdio.h>
int main()
{
int a = 2; //4
short b = 3.5; //2
printf("%zd\n", sizeof(a / b)); //输出结果4
return 0;
}