微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据类型与数据结构

如何解决数据类型与数据结构

C 语言中的 struct 是数据类型还是数据结构?根据维基百科,数组是复合数据类型,但数组不是数据结构吗?数据结构与数据类型有何不同。 提前致谢。

解决方法

An array is a data type in C,so is a structure.

data structure 是一种组织数据的方式,可以使用一种或多种数据类型。

,

struct 是“结构”的一种镜头形式。它们是一种组织数据的方式。可以使用多种类型的原始(或复杂)成员类型来创建结构。例如,

struct EmployeeRecord {
    float mSkillLevel = 1.0f;
    int mWorkingYears = 0;
};

另一方面,数组是类似类型记录的集合。这意味着数组只包含一种类型的多个数据。一个数组看起来像这样,

EmployeeRecord employees[10];    // Stores records of 10 employees.
int numbers[15];    // Stores 15 numbers.

现在数组也是一种数据结构。这意味着可以像这样使用 struct 分解和实现上面的示例,

struct RecordArray10 {
    EmployeeRecord record1;
    EmployeeRecord record2;
    EmployeeRecord record3;
    ...
} employees;

struct NumArray15 {
    int num1;
    int num2;
    int num3;
    ...
} numbers;

现在这些有索引记录的实际问题。为此,我们需要将其强制转换为其成员类型(即 EmployeeRecord)指针,然后我们才能对其进行索引,

EmployeeRecord* pArray = (EmployeeRecord*)&numbers;
EmployeeRecord& firstElement = pArray[0];    // Indexing the first element.

为了便于使用,C 直接使用我提到的第一种语法提供了对数组的支持。

数组有两种类型,

  1. 静态数组(在编译时解析,无法调整大小)。
  2. 动态数组(可以在运行时调整大小)。

参考文献:
Wikipedia: Data Structure
Wikipedia: Array data structure
Array vs Data Structure

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。