引言
程序离不开数据。把数字、字母和文字输入计算机,就是希望它利用这些数据完成某些任务。同样,数据也是C语言不可缺少的;在本章节,我会介绍C语言数据类型的一些基本概念。
有关C语言数据类型的基本介绍
在C语言中,有着丰富的数据类型来描述生活中的各种数据;
一其中,这所谓的类型,就是相似的数据拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。
数据类型的基本分类
数据类型可分为内置数据类型和自定义数据类型
本章节着重介绍内置数据类型
字符型:char类型
char类型用于存储字符(而字符一般指字母、数字或标点符号),但是从技术层面看,char其实是整数类型,也就是说,char类型实际上存储的是整数而不是字符。
计算机使用数字编码来处理字符,即用特定的整数表示特定的字符。
比较常用的编码为ASCII编码,关于ASCII编码的介绍在我以前编写的C语言基本概念1中有所涉及。想了解可跳转到C语言基本概念1:http://t.csdnimg.cn/lLKoO
打印字符
在用printf()函数打印字符时,一般用单引号
printf('a','b','g','9',',',';');
此外,printf()函数用%c指明待打印的字符 ,一个字符变量实际为被存储为1字节的整数,所以如果用%d指明,则打印出来的为整数而非字符!
/*显示字符代码编号*/
#include<stdio.h>
int main()
{
char ch = 'a';
printf("请输入字符:\n");
scanf("%c",&ch);/*用户输入字符*/
printf("字符%c的编码为%d\n", ch, ch);
return 0;
}
非打印字符
单引号只适用于字符、数字和标点符号,我们通过浏览ASCII码表会发现,有些ASCII字符打印不出来。
例如:一些代表行为的字符(如,退格、换行、终端响铃或蜂鸣)。
不过不用担心,C语言提供了3种方法表示这些字符:
第一种:使用ASCII码。
例如,蜂鸣的ASCII字符是7,因此可以写为:
char beep = 7;
第二种:使用特殊的符号序列表示一些特殊的字符
这些特殊的符号序列叫做转义序列,即转义字符
注意:把转义序列赋给字符变量时,必须使用单引号把转义序列括起来。
char nerf ='\n';
具体的一些转义字符也在C语言基本概念1中有提及,这里就不过多赘述啦!
整型
C语言提供了许多整数类型,那么,为什么一种整数类型不够用呢?因为C语言让程序员针对不同情况选择不同的数据类型。
特别是,C语言中的整数类型表示不同的取值范围和正负值。一般情况下使用int类型即可,但是为了满足特定的任务和机器的要求,还可以选择其他的类型。
int类型
int类型是有符号整型,即int类型必须是整数,可以是正整数、负整数或零。其取值范围依计算机系统而异。
一般而言,存储一个int要占用一个机器字长;
其他整数类型
初学C语言时,int类型应该能满足大多数程序的整数类型需求。尽管如此,还应了解一下整数的其他形式。
C语言提供3个附属关键词修饰基本整数类型:short、long、和 unsigned。应记住以下几点:
- short int 类型(或简写为short)占用的存储空间可能是比 int类型少的,常用于较小数值的场合来节省空间;它和int是类似的,都是由符号类型的;
- long int 和 long 占用的存储空间可能比 int 多 ,适用于较大数值的场合,long也有符号类型。
- long long int 和 long long 占用的存储空间可能比 long 多,适用于更大数值的场合。注意:该类型至少占64位。 long long 也有符号类型。
- unsigned int 或 unsigned 只用于非负值的场合。这种类型与有符号类型表示的范围不同。例如:16位 unsigned int 允许的取值范围是 0 ~ 65535 ,而不是 -32768~32767。用于表示正负号的位现在用于表示另一个二进制位,所以无符号整型可以表示更大的数。
浮点型
各种整数类型对大多数软件开发项目而言是够用的。然而,面相金融和数学的领域通常使用浮点数
打印浮点数类型,用f指明
float a = 0.111111
printf("%f", a);
C语言中的浮点类型有float、double和long double类型
float、double和long double
float类型:C语言规定,float类型必须至少是6位有效数字 。
double类型:该类型意为双精度,其最小取值范围与float类型相同,但至少能表示10位有效数字。由于double类型与long类型占用位数不同,double类型增加了有效数字位数,提高了精度,而且还减少了舍入差
long double类型:long double类型能满足比 double类型更高的精度要求;不过在C语言中只满足二者精度形同;
布尔类型
C语言并没有为布尔值单独设一个类型,而是使用整数0表示为假,非零表示为真。
C99引入布尔类型,用于表示布尔值,即逻辑值true和false,是专门表示真假的。
布尔类型使用得包含头文件<stdbool.h>
#define bool _Bool
#define false 0
#define true 1
布尔类型使用的基本代码展示
#include<stdio.h>
#include<stdbool.h>
int main()
{
_Bool flag = true;
if (flag)
printf("it`s good");
return 0;
}