gpt4 book ai didi

c - 在像 C 这样的编程语言的上下文中,数组数据结构和数组数据类型有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 14:57:58 25 4
gpt4 key购买 nike

维基百科区分了一个 Array Data Structure和一个 Array Data-type .

在像 C 这样的编程语言的上下文中,数组数据结构和数组数据类型有什么区别?

这是什么:int array[]={1, 2, 3, 4, 5};

它是数组数据结构还是数组数据类型?为什么?

最佳答案

简短回答:帮自己一个忙,忽略这两篇文章。我不怀疑作者的善意,但这些文章充其量只是令人困惑。

What is this : int array[]={1, 2, 3, 4, 5}; ?

Is it an Array Data Structure or an Array Data-type? Why?

两者都是。文章中以该名称讨论的数组数据结构应该专门与 C 中实现的数组相关。数组数据类型概念应该更抽象,但是C 数组当然是数组数据类型的一种实现。

长答案:这两篇文章考虑的区别是行为和实现之间的区别。文章中使用的数组数据结构是指按顺序存储在内存中的元素,因此您可以通过以下方式计算任何元素的地址:

address = (base address) + (element index * size of a single element)

其中“基地址”是索引 0 处元素的地址。

另一方面,

数组数据类型 是指提供按索引访问的元素的逻辑序列的任何数据类型。例如,C++ 提供了 std::vector,Objective-C 提供了 NSArray 和 NSMutableArray,它们都不太可能实现为内存中连续的元素序列。

文章中使用的术语不是很有用。 数组数据结构文章顶部给出的定义是:

an array data structure or simply array is a data structure consisting of a collection of elements (values or variables), each identified by at least one index

数组数据类型的定义是:

an array type is a data type that is meant to describe a collection of elements (values or variables), each selected by one or more indices that can be computed at run time

显然应该是关于数组的 C 风格实现的数组数据结构 文章包括对关联数组的讨论和其他 Material ,这无济于事适合数组数据类型一文。您可以通过阅读 discussion page 了解这是为什么。 , 特别是 Proposal to split the articleArray structure .关于这些文章,唯一清楚的是,对于“数组”应该如何定义和解释,不同的作者无法下定论。

关于c - 在像 C 这样的编程语言的上下文中,数组数据结构和数组数据类型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com