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个关键字。

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

  1. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  2. C语言中的声明和定义

    C语言中的声明和定义 引言 变量的定义和声明 函数的定义和声明 引言 之前一直没有在意过C语言中的声明和定义的区别,和同事交流代码时也总是混淆这个概念,害!归根究底还是C语言基础没打好. 变量的定义和 ...

  3. c语言打印qword类型,c/c++开发分享c语言中数据类型BYTE,WORD和DWORD的格式说明符?...

    在 例如,如果我尝试使用"%lu"显示BPB_BytsPerSec,我会得到不同寻常的数据. printf("Bytes per Sector: %lu", b ...

  4. C语言中的结构体定义和使用例子

    C语言中的结构体定义和使用例子 一.结构体定义的三种方式 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对 问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共 ...

  5. C语言中函数strcpy ,strncpy ,strlcpy的用法

    C语言中函数strcpy ,strncpy ,strlcpy的用法 http://hi.baidu.com/qi_hao/blog/item/043ef21c6e26c58286d6b678.html ...

  6. c语言中的结构体定义和常见用法

    1.结构体简述和概念 结构体是C语言中一种重要的数据类型,该数据类型由一组称为成员(或称为域,或称为元素)的不同数据组成,其中每个成员可以具有不同的类型.结构体通常用来表示类型不同但是又相关的若干数据 ...

  7. C语言中数据类型的大小以及全局变量和局部变量

    一.数据类型 char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点型 double //双精度浮点 ...

  8. c语言中数据类型的课件,C语言课件(基本数据类型).ppt

    C语言课件(基本数据类型) 基本数据类型 引例 变量与常量 预备知识 内储存器的组织 数据类型 基本数据类型 整数类型 字符 浮点类型 引例 引例 问题 计算任意一个圆的面积. 源程序(cw02-01 ...

  9. c语言中int x=0101,二进制安全_C语言中数据类型

    1.C语言中的数据类型: 2.学习数据类型的三个要素: 1.存储数据的宽度 2.存储数据的格式 3.作用范围(作用域) 3.整数类型:char short int long char 8BIT 1字节 ...

最新文章

  1. AndroidManifest.xml配置详解
  2. 2009年新计划,开始使用dotnet来开发web
  3. Linux入门(10)——Ubuntu16.04使用pip3和pip安装numpy,scipy,matplotlib等第三方库
  4. Vue v-for使用详解
  5. BSP print implemented in BSPWD_BASICS print.htm
  6. Educational Codeforces Round 88 (Rated for Div. 2)(AB)
  7. python print format
  8. 在导出php,PHP导出通用方法
  9. Python 爬虫技巧
  10. 【java学习之路】(java SE篇)014.Stream API
  11. 域名解析到指定端口_南京课工场IT培训:搭建nginx虚拟主机——基于域名、端口和IP...
  12. VvvebJs可视化前端设计开发工具
  13. mysql多表条件查询_mysql 多表 多个条件 查询
  14. 王铎《草书唐人诗九首》
  15. 第二届中国Rust开发者大会议程介绍
  16. SQL ——窗口函数简介
  17. 苹果android系统版本,给Mac装上的Android系统?Remix OS PC版
  18. 小草手把手教你 LabVIEW 串口仪器控制——VISA 串口配置
  19. 关于如何发挥最好的学习状态的思考暨《自控力》一书读后感
  20. 相濡以沫还是想忘于江湖

热门文章

  1. ERP中数据导入的注意事项&常见异常处理(EDI)
  2. 转发(Forward)和重定向(Redirect)的区别
  3. 为什么必须要数据清理?
  4. dos2unix命令找不到怎么办
  5. javac java编译-g
  6. 日文电脑文件路径问题
  7. C语言界面列表的滑动效果,jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)...
  8. ROS 机器人操作系统
  9. 关于word自动生成目录,出现部分文字后面省略号疏密不一致的问题
  10. Idea中GsonFormat插件安装