从C语言的角度来解释什么是抽象数据类型?

如题所述

简单的说一下吧,所谓抽象数据类型ADT,是指 我们在逻辑上定义的 一种 数据类型。

如你所知道的,计算机内,无论是内存还是外存,都只是一组二进制的数位而已。

大多数时候,比如我们所熟知的 Char类型、Int类型等等,都是一组已经定义好的二进制数位。

所谓定义好,是指,在这一组数位中,如Char类型,8位,即一组8个二进制数位,我们如何标识和处理每一位,以及解读每一位所代表的意义。

你学过C,应该知道ASCII码,和二进制计数。 Char的这个数据类型的含义就是说 以二进制计数 算出对应的数值, 再以ASCII码为标准,解读出这8位二进制位中所表示的字母。

事实上,我想说的是,这就是一个基本的抽象数据类型了。

当然,ADT不仅仅是一组数位的定义,他还包括一组定义在这个结构上的一组操作。

struct这个方法,在后来的演变中,成为了C++和其他高等语言中的类(class)。

我知道,这样讲你肯定不是很明白,但关于这个东西,有一门课程叫做《数据结构》,中间详细叙述了所有有关 抽象数据类型的概念 。

其中,有一本 《数据结构C语言版》清华大学出版社 严蔚敏著 的教材,是所有计算机专业学生必修的一门课程。你可以看看。

祝好运!

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-12
数据类型包括两个方面:1,这种类型所能代表的值的范围,或者说这种类型里面存的是什么东西;2,可以对这种类型做什么操作

所谓抽象数据类型,就是你在使用这个类型的时候,只要知道上面两点就可以了,你不用去管它里面是怎么实现的。如果该类型的具体实现改变了,也不会影响使用这个类型的已有的程序的代码。比如你在C语言里面经常用到int这个类型,但你从来没想过它是怎么来实现int与int之间的加法,乘法的,你也不需要知道。哪天编译器把int型的加法改了一下,跟你也没关系,你只要会使用就行了。本回答被网友采纳
第2个回答  2021-08-16
高级程序设计语言C中,你在学习的时候,会学到例如整型、实型、字符型以及结构型的数据类型。这些数据类型是在C语言中的基本数据类型,此处你可以理解为是数值型的数据类型。
那么,如何理解你所说得抽象数据类型呢?先对数据结构这四个字做个分解。
数据结构=数据+结构
数据分为数值型和非数值型
结构分为逻辑结构和物理结构
那么抽象数据类型就是指在C语言环境下没有的数据类型,即排除数值型数据类型以外的类型,明白了吗,因为在还没有出现面向对象编程前,现有的C提供的数据类型已经不能满足程序设计的需要,但是为了满足针对现实客观事物的存在需要,通过C语言所提供的结构struct来实现对现有世界的编程需要。
这个抽象是人为的,就是由人对所研究事物的数学抽象,把具体的事物看做是像基本数据类型那样的一种类型,此时虽然在程序设计中并不存在这种数据类型,但是为了程序设计需要,必须通过抽象的手段和方式来对所研究的事物进行一种人为定义的数据类型,而我们将这种数据类型称为抽象数据类型。
C语言中的结构struct是C语言所提供的一种满足人为需要的抽象数据类型的模板。在后来面向对象编程的出现,也是以C语言中的结构struct为基础,做出的面向对象的类的概念,从而设计出类与对象的编程思想,这里对象不就是C中的指针体现吗,对吧。只不过C中的指针更加直观,而类中的对象隐藏了指针的功能而已。
以上的个人观点,希望对你有所帮助吧,相互学习,谢谢!
相似回答