我对原始数据类型的理解是
它是一种隐式语言提供的数据类型(其他是用户定义的类)。
因此,不同的语言有不同的数据类型集,这些数据类型被认为是特定语言的原语。是那么回事吗?
“基本数据类型”和“内置数据类型”的区别是什么?维基百科说,这两种类型之一都是原始数据类型。
中?
发布于 2012-03-14 15:11:21
这有点取决于语言。
例如,在C和C++这样的语言中,有许多内置的标量类型-- int、float、double、char等,它们是“原始”的,不能分解成更简单的组件。从这些基本类型可以定义新类型-指针类型、数组类型、结构类型、联合类型等。
然后你就有了一种类似于旧式Lisp的语言,其中所有的东西要么是原子,要么是列表。再一次,根据上面的定义,原子是“原始的”,因为它不能被分解成更简单的东西。
编辑
就我而言,“原始”、“基本”和“内置”这几个词几乎是可以互换的。不过,如果你真的想学些东西,你可以区分那些“内建”类型(那些由语言定义显式提供的类型)和从仍然是“原始”或“基本”的内建类型派生出来的类型,因为它们不能分解成更简单的元素。C的typedef工具允许您为现有类型创建新的类型名称。Ada允许您创建具有约束的新标量类型。例如,您可以从内置的浮动类型派生出一个纬度类型,其约束条件是它不能接受范围-90.090.0以外的值。它仍然是一个原始的或基本的类型,因为它不能被分解成任何简单的组件,但是由于它是用户定义的,所以它不被认为是“内置”类型。
再说一遍,这些概念有点模糊,它真的取决于上下文。例如,“内置”类型的概念对于诸如幸福这样的无类型语言来说是毫无意义的。
发布于 2012-03-14 15:39:59
从Java的角度来看:
在Java中,原始类型和非原始类型之间有着非常明确的区别。
基元类型的变量直接包含该类型的值(换句话说,它们是值类型)。
非原始类型的变量不直接包含值;相反,它是对对象的引用(类似于指针)。(在Java中无法创建用户定义的值类型)。
Java有八种基本类型:byte、short、int、long、char、boolean、float和double。其他的都是非原始类型。
发布于 2012-03-14 15:11:31
基元是一种基本数据类型,不是从其他数据类型构建而来的。它只能表示一个值。根据需要,所有原语都是内置数据类型(编译器必须了解它们),但并非所有内置数据类型都是原语。
在某些语言中,编译器内置了某些类型的知识,这些知识是由其他东西构建的,因为它必须能够以一种特殊的方式对待它们。例如Delphi和Visual中的变体(以及Boo等价物"Duck")和大多数OO语言中的基类。
https://softwareengineering.stackexchange.com/questions/139747
复制相似问题