首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是原始数据类型?

什么是原始数据类型?
EN

Software Engineering用户
提问于 2012-03-14 14:52:32
回答 7查看 98.2K关注 0票数 43

我对原始数据类型的理解是

它是一种隐式语言提供的数据类型(其他是用户定义的类)。

因此,不同的语言有不同的数据类型集,这些数据类型被认为是特定语言的原语。是那么回事吗?

“基本数据类型”和“内置数据类型”的区别是什么?维基百科说,这两种类型之一都是原始数据类型。

PS -为什么“字符串”类型在SNOBOL4中被认为是基本类型,而不是在

中?

EN

回答 7

Software Engineering用户

回答已采纳

发布于 2012-03-14 15:11:21

这有点取决于语言。

例如,在C和C++这样的语言中,有许多内置的标量类型-- intfloatdoublechar等,它们是“原始”的,不能分解成更简单的组件。从这些基本类型可以定义新类型-指针类型、数组类型、结构类型、联合类型等。

然后你就有了一种类似于旧式Lisp的语言,其中所有的东西要么是原子,要么是列表。再一次,根据上面的定义,原子是“原始的”,因为它不能被分解成更简单的东西。

编辑

就我而言,“原始”、“基本”和“内置”这几个词几乎是可以互换的。不过,如果你真的想学些东西,你可以区分那些“内建”类型(那些由语言定义显式提供的类型)和从仍然是“原始”或“基本”的内建类型派生出来的类型,因为它们不能分解成更简单的元素。C的typedef工具允许您为现有类型创建新的类型名称。Ada允许您创建具有约束的新标量类型。例如,您可以从内置的浮动类型派生出一个纬度类型,其约束条件是它不能接受范围-90.090.0以外的值。它仍然是一个原始的或基本的类型,因为它不能被分解成任何简单的组件,但是由于它是用户定义的,所以它不被认为是“内置”类型。

再说一遍,这些概念有点模糊,它真的取决于上下文。例如,“内置”类型的概念对于诸如幸福这样的无类型语言来说是毫无意义的。

票数 33
EN

Software Engineering用户

发布于 2012-03-14 15:39:59

从Java的角度来看:

在Java中,原始类型和非原始类型之间有着非常明确的区别。

基元类型的变量直接包含该类型的值(换句话说,它们是值类型)。

非原始类型的变量不直接包含值;相反,它是对对象的引用(类似于指针)。(在Java中无法创建用户定义的值类型)。

Java有八种基本类型:byteshortintlongcharbooleanfloatdouble。其他的都是非原始类型。

票数 20
EN

Software Engineering用户

发布于 2012-03-14 15:11:31

基元是一种基本数据类型,不是从其他数据类型构建而来的。它只能表示一个值。根据需要,所有原语都是内置数据类型(编译器必须了解它们),但并非所有内置数据类型都是原语。

在某些语言中,编译器内置了某些类型的知识,这些知识是由其他东西构建的,因为它必须能够以一种特殊的方式对待它们。例如Delphi和Visual中的变体(以及Boo等价物"Duck")和大多数OO语言中的基类。

票数 9
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/139747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档