C语言数据类型-数据类型基本分类

引言

程序离不开数据。把数字、字母和文字输入计算机,就是希望它利用这些数据完成某些任务。同样,数据也是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。应记住以下几点:

  1. short int 类型(或简写为short)占用的存储空间可能是比 int类型少的,常用于较小数值的场合来节省空间;它和int是类似的,都是由符号类型的;
  2. long int 和 long 占用的存储空间可能比 int 多 ,适用于较大数值的场合,long也有符号类型。
  3. long long int 和 long long 占用的存储空间可能比  long 多,适用于更大数值的场合。注意:该类型至少占64位。 long long 也有符号类型。
  4. 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;
}

 

 

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值