目录
一、数据类型
C语言提供了丰富的数据类型来描述生活中的各种数据,用整型类型来描述整数,用字符类型来描述字符,使用浮点型类型来描述小数,这些都是内置类型,仅靠这些是不能很好满足生活中的需求的,所以C语言中还有自定义类型,可以根据需求来创建使用,下面主要讲解内置类型。
1)字符型
C语言把字符当作整数进行处理的,所有字符都是以二进制的形式进行编码的,每个字符都对应一个特定的整数,例如字符‘a’的值为97,‘0’的值为48。
字符型分为有符号字符(即 signed char)和无符号字符(即 unsigned char),需要注意的是,C语言中并没有说明普通char类型数据是有符号型还是无符号型,不同的编译器可能有所不同。
有符号字符的取值范围是-128~127,无符号字符的取值是0~255。
注:小写字母 - 32 = 大写字母(常用)
2)整型
①短整型:
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)
(括号表示可以省略)
可以发现,对于一般的short、int、long都认为是有符号的,这是C语言规定了的,与字符型不同。
对于int型,只能容纳-32768~32767范围内的数,如果需要表示超出此范围的数则需要用long型。
3)浮点型
浮点型是用来表示小数的,按数值的取值范围不同分为三种:单精度(即 float)、双精度(即 double)和长双精度(即 long double),当精度要求不严格时,float类型是很合适的类型,而double能够提供更高的精度,对于绝大多数程序来说都够用了,long double 支持极高精度的要求,很少会用到。
浮点常量有很多种书写方式,例如57.0可以写成下面这些形式:
57.0 57. 57.0e0 5.7e+1 .57e2 570.e-1
浮点常量必须包含小数点或者指数,其中,指数指明了对前面的数进行缩放所需的10的幂次,如果有指数则需要在指数数值前放字母e,例如5.7e+1表示5.7 * 10 ^1。
4)布尔类型
C语言原来并没有为布尔值单独设置一个类型,而是用整数0表示假,非零表示真。
在C99中引用了布尔类型(即 _Bool),是专门表示真假的。
布尔类型的使用需包含头文件 <stdbool.h>。
布尔类型变量的取值是:true或者false
即 #define bool _Bool
#define false 0
#define true 1
代码演示:
注意:使用布尔类型前,需要保证所使用的编译器支持C99或更高版本的标准,因为布尔类型是在C99标准中引入的。
二、格式字符
格式字符顾名思义是用于控制输出格式的特殊字符,当我们用printf输出数据时可以用其来控制格式。
1)d格式符:
%d,用于输出十进制整数,按实际长度输出。
2)f格式符:
用于输出浮点数,实数中整数部分全部输出,小数部分输出6位。
①基本型:%f
②指定数据宽度和小数位数:%m.nf(表示占m列,其中n位小数,需要注意的是小数点也算一列)
举个例子:printf("%5.3f\n",2.0 / 5.0);输出的结果应该是0.400,若是%6.3f则应该是(一个空格)0.400,前边不够的要补空格,这是右对齐。
③左对齐,%-m.nf:与②类似,只是数据想左靠,右端补空格
④%0m.nf : 与②类似,将前边补的空格替换成0,例如用%06.3f输出0.4,则最后输出的是 00.400。
3)c格式符:
%c,输出字符,注意:字符需要写在单引号' '里面,例如'a'表示字符a。
4)s格式符:
%s,输出字符串,字符串需要写在双引号" "内,例如"China"。
与f格式符类似,也有几种使用方法,但又有点区别。
①基本型:%s,直接输出
②%ms:至少输出m列,若超过m列则全数输出。
③%m.ns:输出占m列,只取字符串中的n个字符(从左至右)。
5)e格式符:
以指数形式输出实数。
小数占6列,指数部分5列(其中“e”占1列,指数符号(+ / -)占1列,指数占3列)
6)o格式符:
%o,用于输出八进制整数。
7)x格式符:
%x或者%X,用于输出十六进制整数。
8)u格式符:
用于输出无符号整数(十进制)。
于此,就讲解完啦,如果有不正确的地方欢迎指出!