7、数据类型

1、数据类型

数据类型是约束变量行为操作。由于C语言是编译型,因此每个变量在被使用前,均都需要先定义声明,才能被使用。

2、C语言数据类型分类

数据类型

3、普通类型案例
3.1、源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
// 打印各个数据类型的值
int main()
{
//1、打印整形
int i = 100;
printf("i=%d\n",i);

//2、打印浮点型
float f = 9.44444444444;
printf("f=%f\n",f);
// 打印保留小数点后9位
printf("f=%.9f\n",f);

//3、打印双精度浮点型
double d = 9.44444444444;
printf("d=%f\n",d);
// 打印保留小数点后9位
printf("d=%.9f\n",d);

//4、打印单个字符
char c = 'h';
printf("c=%c\n",c);
return 0;
}
3.2、运行结果

运行结果

3.3、总结
  • 打印函数 printf中 %d代表打印整数、%c代表打印字符、%f代表打印浮点型,其中支持输出小位数
  • 浮点型可分为float、double、其中精度是double大于float
4、数据类型占用内存字节数
4.1、源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
// sizeof 打印各个数据类型所占用的内存字节数
// 格式1: sizeof(变量|常量)
// 格式2: sizeof 变量|常量
int main()
{
//1、整形
int i;
int size1 = sizeof i;
printf("整形字节数:%d\n",size1);

//2、浮点型
float f;
int size2 = sizeof(f);
printf("浮点型字节数:%d\n",size2);

//3、双精度浮点型
double d;
int size3 = sizeof d;
printf("双精度浮点型字节数:%d\n",size3);

//4、字符
char c;
int size4 = sizeof c;
printf("字符字节数:%d\n",size4);

return 0;
}
4.2、运行结果

运行结果

4.3、总结
  • sizeof可以用显示变量或常量占用的内存字节数
  • 通过知道数据类型所占用的字节数,就能知道通过该类型定义的变量的字节数
5、类型转换

是指普通数据类型之间在程序运行过程中,发生了数据类型的改变。

5.1、源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int main()
{
// 1、显示转换
int j = 99;
printf("%f\n",(float)j);
printf("%f\n",(double)j);

float fj = 99.999999;
printf("%d\n",(int)fj);

double fd = 99.999999999;
printf("%f\n",(float)fd);

// 2、隐式转换
int j1 = 10;
float fj1 = 10.0;
printf("%f\n",j1+fj1);
//printf("%d\n",j1+fj1); // 报错
return 0;
}