三、数据类型
【问】为什么要写代码?
【答】为了解决生活中的问题。例如:购物、点餐、看电影 等
【比如】购买了一本《C语言》的书,这本书的价格是66(整型),或者66.6(小数),而《C语言》的书名又是字符串)。
【问】那么这些书名啊、价格啊又是如何存储的呢?
【答】这时候,在C语言中为了能够描述这些东西就引用了数据类型。对于小数抽象出了一种数据类型,即浮点型。对于整数抽象出来了一种数据类型,即整型。对于字符抽象出来了一种数据类型,即字符型。
【问】为什么叫浮点型呢?
【答】因为小数点可以浮动。
【比如】66.6,可以表示位6.66 * 10,也可表示0.666 * 100。
【问】为什么会有这么多的类型呢?
【答】因为生活中就有这些类型。
1、C语言中的数据类型
☆ char 字符数据类型
☆ short 短整型
☆ int 整型
☆ long 长整型
☆ long long 更长的整型
☆ float 单精度浮点型(精度较低)
☆ double 双进度浮点型(精度更高)
2、数据类型的用法
(1)字符类型(char)
【比如】有一个 字符 a ,那么这个 **字符 a ** 怎么存储呢?
#define _CRT_SECURE_NO_WARNINGS 1
int main()
{
/* ch是存放字符 a 的存储空间 */
char ch = 'a'; //将字符 a 放入变量 ch 的空间里
return 0;
}
(2)整型(int)
【比如】有个人有 20 岁,那么这个 20 就是整数类型,怎么表示呢?
#define _CRT_SECURE_NO_WARNINGS 1
int main()
{
/* age(年龄)是存放整型 20 的存储空间 */
int age = 'a'; //将整型 20 放入变量 age 的空间里
return 0;
}
(3)短整型(short int)
short int 也可用 short 表示。
【比如】有个数字 10 岁,那么这个 10 就是短整型(就是比 int 短的 整型),怎么表示呢?
#define _CRT_SECURE_NO_WARNINGS 1
int main()
{
/* num(数字)是存放短整型 10 的存储空间 */
int num = 'a'; //将短整型 10 放入变量 num 的空间里
return 0;
}
(5)单精度浮点型(float)
【比如】一个人的 体重 是 55.5 公斤,怎么表示呢?
#define _CRT_SECURE_NO_WARNINGS 1
int main()
{
/* weight(体重)是存单精度浮点型 55.5 的存储空间 */
float weight = 55.5; //将单精度浮点型 55.5 放入变量 weight 的空间里
return 0;
}
(6)双精度浮点型(double)
double的精度比float 的精度高。
【比如】一个人的 体重 是 55.5 公斤,怎么表示呢?
#define _CRT_SECURE_NO_WARNINGS 1
int main()
{
/* weight(体重)是存双精度浮点型 55.5 的存储空间 */
double weight = 55.5; //将双精度浮点型 55.5 放入变量 weight 的空间里
return 0;
}
【问】数据存储要空间,那么每一种类型的空间大小是多少?
3、数据类型的大小
(1)sizeof
sizeof是关键字,也是操作符。
【作用】计算类型或者变量所占空间的大小(单位:字节)。
(2)进制数
进制数的范围 |
---|
二进制:0、1 |
八进制:0、1、2、3、4、5、6、7 |
十进制:0、1、2、3、4、5、6、7、8、9 |
十六进制:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F |
我们生活在一个十进制的世界,即0、1、2、3、4、5、6、7、8、9。
(3)计算机中的单位
计算机只能识别二进制的数,即比特位(bit)只能使用 0 和 1 来表示。
(4)%d
表示按照整型的格式打印。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char)); // 1(字节)
printf("%d\n", sizeof(short)); // 2(字节)
printf("%d\n", sizeof(int)); // 4(字节)
printf("%d\n", sizeof(long)); // 4(字节)
printf("%d\n", sizeof(long long)); // 8(字节)
printf("%d\n", sizeof(float)); // 4(字节)
printf("%d\n", sizeof(double)); // 8(字节)
printf("%d\n", sizeof(long double)); // 8(字节)
return 0;
}
【注】C语言中规定: sizeof(long) >= sizeof(int) !!!
【问】为什么C语言中的整型和浮点型的种类很多?
【答】为了更好的合理利用C语言的空间,提高代码空间的利用效率。
(5)%zu
打印 sizeof 返回值时输出的是无符号整型。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
printf("%zu\n", sizeof(char)); // 1(字节)
printf("%zu\n", sizeof(short)); // 2(字节)
printf("%zu\n", sizeof(int)); // 4(字节)
printf("%zu\n", sizeof(long)); // 4(字节)
printf("%zu\n", sizeof(long long)); // 8(字节)
printf("%zu\n", sizeof(float)); // 4(字节)
printf("%zu\n", sizeof(double)); // 8(字节)
printf("%zu\n", sizeof(long double)); // 8(字节)
return 0;
}
标签:03,字节,int,数据类型,long,整型,printf,sizeof
From: https://www.cnblogs.com/AK47YHAO/p/18588112