C语言中数据类型的相关定义与用法

C语言中数据类型的相关定义与用法

数据类型

数据有各种类别:数字、文字等,同样类别的数据也有大小之分,1个Byte不能满足这多样的需求。 对需求相同的数据分为一类,分配相同的字节空间用于存储。

所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。 不同的类型分配不同的长度和存储形式。

1.整形

通过类型定义符,可以定义一个整数类型的变量,方法如下:

类型定义符 标识符;

int mum;

在内存中使用4个字节的空间来保存整数数据,这个空间使用名称mum来标识

(1)只有整型(包括字符型)数据可以加signed或unsigned修饰符,实型数据不能加。

(2)对无符号整型数据用"%u"格式输出。%u表示用无符号十进制数的格式输出。在将一个变量定义为无符号整型后,不应向它赋予一个负值,否则会得到错误的结果

2.浮点型

由于小数点位置可以浮动,所以实数的指数形式成为浮点数。
浮点数类型包括float(单精度浮点型),double(双精度浮点型),long double(长双精度浮点型)。

由于用二进制形式表示一个实数以及存储单元的长度是有限的,因此不可能得到完全精确的值,只能存储成有限的精确度。小数部分占的位(bit)数愈多, 数的有效数字愈多,精度也就愈高。指数部分占的位数越多,则能表示的数值范围愈大。

两种表示方法:

(1)十进制小数形式:由数字和小数点组成: 例如:3.14, 4., .4,.0 , 0.
(2)指数形式:“十进制小数或整数”+"e(或E)”+“十进制数整数”,e(或E)的两边必须有数。例如:3.5e-4表示3.5×10 ^-4

单精度浮点数类型小数点后有效的位数只有6位。双精度类型的有效数可以达到16位。
绝大多数C编译器都规定小数点后最多保留6位,其余部分四舍五入。

通过类型定义符,可以定义一个浮点数类型的变量,与定义整数变量的方法相同:

float fnum;
double dnum;

浮点类型变量也可以使用printf()函数,与整型变量不同的是:float的格式说明项为"%f",double的格式说明项为"%lf"

3.字符型

字符类型保存的是ASCLL码表中的字符。这个类型占用1个字节,也可以将字符类型看作1个占用1个字节的整数类型,及其表示整数数据的范围为0~255或-12~+127。

[signed] char 有符号字符型

[unsigned] char 无符号字符型

ASCLL字符集包括:

  • 字母:大写英文字母A-Z,小写英文字母a-z
  • 数字:0~9
  • 专门符号:29个包括 !“ # & ‘ ()* ,- . / : ; < = > ? [ \ ] ^ _ ` { | } ~
  • 空格符:空格、水平制表符(tab)、垂直制表符、换行、换页(form feed)
  • 不能显示的字符:空(null字符(以’\0’表示)、警告(以’\a’表示)、退袼(以’\b’表示)、回车(以’\r’表示)等

在表示一个字符的时候,可以使用 ’ ’ 将字符括起来的形式,也可以直接使用ASCII中的编码值。

对于可输入字符可以使用键盘的方式输入,也可以在屏幕上显示。但是控制字符没有输入的方式,甚至没有办法显示到屏幕上。为此,c语言提供了另外一种表示字符的方法,即转义字符。

转义字符是以反斜杠“\”引导的特殊字符常量表示。
比如n表示字母表中的字母n,转义字符\n表示的则是换行符,控制文本换行。

\ddd

3位8进制数表示的ASCLL码对应的字符

\xhh

2位16进制数表示的ASCLL码对应的字符

转义字符:‘\x41’ , ‘\101’

16进制41等于65

8进制101等于65

值为65的ASCII码是’A’

使用转义字符时,还需要注意以下几点:

  • 转义字符中只能使用小写字母,每个转义字符看作一个字符。
  • 转义字符’\v’,与’\f’,不影响屏幕输出,它们仅影响打印机的打印输出。
  • 在C语言中,不可打印的字符都使用转义字符表示。

字符类型的存储:

字符数据在内存中的存储形式:以二进制的ASCLL码形式存储。

字符数据在内存中存储的是字符的ASCLL码的值,是一个无符号整数,其形式与整数的存储形式一样,所以C语言允许字符型数据与整型数据之间通用。

所以,一个字符型数据,既可以字符形式输出,也可以形式输出。

字符变量可以用一个字符为其赋值,也可以使用字符在ASCLL码表中的编码值为其赋值,甚至这个编码值可以是16进制和8进制。

输出字符变量时,printf()函数需要使用格式控制符%c。

4.标识符

标识符是有效字符序列,是一个对象的名字。用于标识用户自己定义的变量、符号常量、函数名、数组名、类型名等。

上文中的整型变量num、浮点型变量 fnum等,均为用户定义的标识符。

命名规则如下

  • 不能是关键字。
  • 只能由字母、数字和下划线组成,且区分字母大小写。
  • 名称的第1个字符必须是字母或者下划线,不能是数字。
  • 名称中间不能有空格。
  • 标识符可以为任意长度,但最好不要超过31个字符。
  • 不要与C语言库函数名称相同。

关键字〈keyword)又叫保留字。他们是C语言预先定义好的字符序列,具有特殊的含义和用法,使用者不能将其作为标识符(见标识符命名规则)。ANSIC中有32个关键字。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值