c - 数组与 C 编程语言中的结构体和 union 有何不同?

标签 c arrays structure unions

我无法理解它们之间的区别。当同样的事情由三个人完成时,我们什么时候应该使用数组/结构/union ?

最佳答案

在数组中,所有元素都具有相同的大小和类型,因此您不能将一个元素用作 int 值,将另一个元素用作 double 值,并且等等。

struct中,每个元素都可以有不同的大小或类型。您可以将其中一个用作 int,将其他用作可用于常规变量的任何数据类型,您还可以拥有结构数组。

union 用于将单个变量用于可能的多种数据类型。在union中,实例的大小等于其最大成员的大小,而在struct中,实例的大小等于各个成员大小的总和。

此外,如果您使用 struct,即使对于相同类型的成员,本质上语法也会更加清晰。例如,而不是

float ****point3d;

你可以有

struct point3d_s {
    float x, float y, float z;
};
point3d_s *point3d;

将声明一个指向 3 维点的指针,该指针也可以用作数组。

关于c - 数组与 C 编程语言中的结构体和 union 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40702859/

相关文章:

python - 如何在Python中创建一个给出数组元素的函数?

c - 如何打印大小未知的int数组

c - 指向嵌套结构指针的指针

c - Linux 内核模块在迭代正在运行的进程以访问进程打开的文件时卡住计算机

C 将字符串存储到数组中

matrix - 您会如何简单地描述 DSM?

c - 如何将 CSV 文件中的数据存储到结构中,然后返回该结构

c - xlib 是否有事件窗口事件?

c# - 在 CLR 中 GetCursorPos 之后获取相对位置?

c - 返回局部变量指针 - C