目录
引言:
一、数据类型大小及分类
(1)计算机中常用存储单位
(2)整体介绍一下C语言的数据类型分类。
(3)下面是我们本节课要学的基本内容----常用的数据类型
二、 数据类型的数值范围
三、打印输出类型
数据类型打印示例:
引言:
我们常常在写C语言程序时,总离不开去定义变量。也许需要定义一个整形的,又或是定义一个浮点型的.....那么这时候就需要数据类型啦!又或许你常常因为没有使用合适正确的数据类型造成运行结果溢出等等一些问题。关于常见的一些数据类型(int,char...)大家可能都知道,那么他们的大小、数值范围是多少呢,我们该怎么去具体选择呢,一起来了解一下吧!
一、数据类型大小及分类
(1)计算机中常用存储单位
(2)整体介绍一下C语言的数据类型分类。
1.基本类型:
(1)整型类型。整型类型包含:基本整型(int)、短整型(short int)、长整型(long int)、双长整型(long long int)、字符型(char)和布尔型(bool)。
注:整型数据可在类型符号前面加修饰符:signed(有符号整数类型)和unsigned(无符号整数类型),若不指定则默认为“有符号类型”。
(2)浮点类型。浮点类型包含:单精度浮点型(float)、双精度浮点型(double)和复数浮点型(单精度复数浮点型(float_complex)、双精度复数浮点型(double_complex)和长精度复数浮点型(long long_complex))。
2.枚举类型:
(1)枚举类型。枚举类型就只有枚举类型(enum)。
3.空类型:
(1)空类型。空类型就只有空类型(void)。
4.派生类型:
(1)派生类型。派生类型包含:指针类型(*)、数组类型([])、结构体类型(struct)、共用体类型(union)和函数类型。
(3)下面是我们本节课要学的基本内容----常用的数据类型
这里只介绍了除了enum(枚举类型)之外的基本数据类型,//其实数据类型还包括构造类型,指针类型...其中基本类型也分为数值类型(整型,浮点型),字符类型和枚举类型数据类型主要决定了数据所占内存空间的大小以及数据的范围char //字符数据类型short //短整型int //整型long //长整型float //单精度浮点型double //双精度浮点型
数据类型主要决定了数据所占内存空间的大小。那么,请问你还记得上述基本数据类型所占的字节数吗?(你知道sizeof的用法吗,sizeof(被测数据),返回一个整数,单位是字节)
#include <stdio.h>int main(){printf("short:%d\n",sizeof(short));printf("unsgned short:%d\n", sizeof(unsigned short));printf("int:%d\n", sizeof(int));printf("unsigned int:%d\n", sizeof(unsigned int));printf("long:%d\n", sizeof(long));printf("unsigned long:%d\n", sizeof(unsigned long));printf("float:%d\n", sizeof(float));printf("double:%d\n", sizeof(double));printf("char:%d\n", sizeof(char)); return 0;}
注:unsigned是一个类型修饰符,用于声明无符号的整型变量。无符号整型变量只能存储非负值(即零和正数),因为它们的位模式被解释为仅表示正值。通俗来讲就是绝对值
由运行结果可知:
char类型的数据类型大小为1字节即8位。
short类型的数据类型大小为2字节即16位。
int类型、long类型、float类型的数据类型大小为4字节即32位。
long long类型、double类型的数据类型大小为8字节即64位。
注意,若整数数据类型前面加unsigned即为无符号整数数据类型,数据类型大小不变。
二、 数据类型的数值范围
三、打印输出类型
数据类型打印示例:
#include <stdio.h> int main(){ char ch='a';//字符用单引号,字符串用双引号 printf("ch为 %c\n",ch);//"\n"是换行的意思printf("ch为 %d\n",ch);//打印'a'的ASCII码 int a=15,b=16; printf("a为 %d\n",a); printf("b为 %d\n",b); long k=124323; printf("k为 %ld\n",k); double c=12.22; printf("c为 %lf\n",c); float c1=12.22; printf("c1为 %f\n",c1);//%f和%lf输出的数都是小数点后保留6位小数return 0;}
输出结果:
问题来了,怎么让double类型和float类型保留后面两位小数呢?
//在%后面加上'.3'即保留小数点后3为double c=12.22;printf("c为 %.3f\n",c);float c1=12.22;printf("c1为 %.2f\n",c1);
结果为: