文档章节

数据类型

sunaction
 sunaction
发布于 2015/02/15 21:21
字数 729
阅读 14
收藏 0

在编程语言中,最基本的、不可再分的数据类型称为基本类型(Primitive Type),例如整型、浮点型;根据语法规则由基本类型组合而成的类型称为复合类型(Compound Type),例如字符串是由很多字符组成的。有些场合下要把复合类型当作一个整体来用,而另外一些场合下需要分解组成这个复合类型的各种基本类型,复合类型的这种两面性为数据抽象(Data Abstraction)奠定了基础。

引用《Linnux C编程一站式学习》

基本类型大多都是常见的简单类型。 下面的来详细划分下类别

C语言的类型分为函数类型、对象类型和不完全类型三大类。对象类型又分为标量类型和非标量类型。指针类型属于标量类型,因此也可以做逻辑与、或、非运算的操作数和if、for、while的控制表达式,NULL指针表示假,非NULL指针表示真。不完全类型是暂时没有完全定义好的类型,编译器不知道这种类型该占几个字节的存储空间

引用《Linnux C编程一站式学习》

![数据类型划分][1]

请先看下图: [1]: http://static.oschina.net/uploads/space/2015/0215/205638_VSZy_2272134.gif

从图中可以看出, 主要分为三大类:

  1. 函数类型(function types)
  2. 不完全类型(incomplete types)
  3. 对象类型(object types)

首先,

  1. 函数类型不用太纠结。 就是函数, 也是一种类型,也可以进行指针操作。 与其他语言的函数有写区别。
  2. 不完全类型, 也不复杂, 其实就是未定义大小长度的复合类型。
  3. 对象类型是C语言中最重要的类型, 属于基本类型(或有大小定义的复合类型)。

不完全类型也包括 void, incomplete array/struct/union types, 其实也就是未定义类型, 和 未确定大小的复合类型。 重点注意对象类型。 对象类型又分为标量类型( soalar types )与非标量类型( nonsoalar types )

两者不同就是非标量类型不是基本类型而是复合类型。 包括 array types, struct types, union types 由基本类型组合而来;

标量类型也就是基本类型

也是最重要的一个类型分类。

又分为 算术类型( arithmetic types ) 与 指针类型( pointer types), 指针类型可以指向一切类型。

算数类型又分为整型( integer types ) 与 浮点型 ( float types) 需要注意的是 整型里包括 char , 字符类型。 因为字符类型就是由字符常量构成的

© 著作权归作者所有

共有 人打赏支持
下一篇: C 学习笔记
sunaction
粉丝 0
博文 4
码字总数 2057
作品 0
昌平
私信 提问
sql server 数据类型

bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off int 数据类型可以存储从- 231(-2147483648)到231 (2147483 ...

Java编程思想
2013/06/20
0
0
SQL Server 数据类型

1. SQL SERVER的数据类型 数据类型是数据的一种属性,表示数据信息的类型,任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称...

长平狐
2013/01/06
133
0
第十九节:Java基本数据类型,循环结构与分支循环

基本数据类型 Java中的基本数据类型,有8种,在Java中有四种类型,8种基本数据类型。 字节 boolean 布尔型为1/8 byte 字节类型为1 short 短整型为2 char 字符型为2 int 整数类型为4 float 浮...

达叔小生
08/05
0
0
C/OC/Swift的数据类型没那么简单

数据类型决定了值如何存储到计算机内存中。在声明变量时也可指定它的数据类型。不同数据类型来存储不同的信息,所有变量都具有数据类型,以决定能够存储哪种数据。 C语言 C语言的基本数据类型...

CoderDancer
2017/08/10
0
0
java,hibernate和sql server对应的数据类型

(PS:对于不同的DB可能有所差异) 在hibernate中类型的转换示例: registerHibernateType(Types.DECIMAL, Hibernate.BIGINTEGER.getName()); registerHibernateType(Types.LONGVARBINARY, Hibe......

KrisX
2014/03/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

我的Linux系统九阴真经

我的Linux系统九阴真经 在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行...

linuxCool
21分钟前
2
0
Python程序员需要知道的30个技巧

1 直接交换两个数字位置 1x, y = 10, 202print(x, y)3x, y = y, x4print(x, y)5#1 (10, 20)6#2 (20, 10) 2 比较运算符的链接 1n = 102result = 1 < n < 203print(result)4# True5result = 1 ......

糖宝lsh
21分钟前
1
0
[LintCode] Linked List Cycle(带环链表)

描述 给定一个链表,判断它是否有环。 样例 给出 -21->10->4->5, tail connects to node index 1,返回 true。 这里解释下,题目的意思,在英文原题中,tail connects to node index 1 表示的...

honeymose
32分钟前
3
0
Android :报错Your project path contains non-ASCII characters.

报错内容如下 Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See ht......

lanyu96
43分钟前
4
0
Nginx平滑添加模块

Nginx已经编译安装并运行了一段时间, 然后某一天, 发现需要用到某个模块但当初没有编译, 这个时候怎么办呢? 卸载重新安装肯定可以的, 如果Nginx版本没有变更的话, 则有一个相对平滑的方法来添...

老菜鸟0217
48分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部