问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

C语言基本数据类型介绍及格式字符

创作时间:
2025-01-22 03:09:23
作者:
@小白创作中心

C语言基本数据类型介绍及格式字符

C语言提供了丰富的数据类型来描述生活中的各种数据,用整型类型来描述整数,用字符类型来描述字符,使用浮点型类型来描述小数,这些都是内置类型,仅靠这些是不能很好满足生活中的需求的,所以C语言中还有自定义类型,可以根据需求来创建使用,下面主要讲解内置类型

字符型

C语言把字符当作整数进行处理的,所有字符都是以二进制的形式进行编码的,每个字符都对应一个特定的整数,例如字符‘a’的值为97,‘0’的值为48。

字符型分为有符号字符(即 signed char)和无符号字符(即 unsigned char),需要注意的是,C语言中并没有说明普通char类型数据是有符号型还是无符号型,不同的编译器可能有所不同。

有符号字符的取值范围是-128127,无符号字符的取值是0255。

注:小写字母 - 32 = 大写字母(常用)

整型

  • 短整型:

  • 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型。

浮点型

浮点型是用来表示小数的,按数值的取值范围不同分为三种:单精度(即 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。

布尔类型

C语言原来并没有为布尔值单独设置一个类型,而是用整数0表示假,非零表示真。

在C99中引用了布尔类型(即 _Bool),是专门表示真假的。

布尔类型的使用需包含头文件 <stdbool.h>。

布尔类型变量的取值是:true或者false

即 #define bool _Bool
#define false 0
#define true 1

代码演示:

注意:使用布尔类型前,需要保证所使用的编译器支持C99或更高版本的标准,因为布尔类型是在C99标准中引入的。

格式字符

格式字符顾名思义是用于控制输出格式的特殊字符,当我们用printf输出数据时可以用其来控制格式。

d格式符:

%d,用于输出十进制整数,按实际长度输出。

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。

c格式符:

%c,输出字符,注意:字符需要写在单引号' '里面,例如'a'表示字符a。

s格式符:

%s,输出字符串,字符串需要写在双引号" "内,例如"China"。

与f格式符类似,也有几种使用方法,但又有点区别。

  • 基本型:%s,直接输出
  • %ms:至少输出m列,若超过m列则全数输出。
  • %m.ns:输出占m列,只取字符串中的n个字符(从左至右)。

e格式符:

以指数形式输出实数。

小数占6列,指数部分5列(其中“e”占1列,指数符号(+ / -)占1列,指数占3列)

o格式符:

%o,用于输出八进制整数。

x格式符:

%x或者%X,用于输出十六进制整数。

u格式符:

用于输出无符号整数(十进制)。

于此,就讲解完啦,如果有不正确的地方欢迎指出!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号