gpt4 book ai didi

c - 指向 C 中结构表的指针

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:34 24 4
gpt4 key购买 nike

C中有一段代码我不明白,也找不到类似的问题,所以希望你能帮助我。我有一个定义如下的 struct 表:

struct my_struct {
struct other_struct some_struct[N];
char some_char;
..
} my_struct[N];

在另一个函数中:

struct my_struct *ms;

然后是我不明白的部分:

ms = &my_struct[0];

我该如何解释这一行?

最佳答案

ms是指向 struct my_struct 的指针.它包含 struct my_struct 的地址多变的。这里我们分配给ms已经声明的struct my_struct数组(也称为 my_struct)第 0 个元素的地址。

& - 运营商地址。这基本上返回变量的地址。

现在您可以访问my_struct[0]通过ms .

等价

ms->some_char = 'A'my_struct[0].some_char='A' 相同.举一个小例子,我可以这样简化。

struct a{
int z;
};

struct a array[10]; // array of 10 `struct a`

struct a* ptr = &array[0]; // ptr contains the address of array[0].

现在我们可以访问array[0]通过指针 ptr .

ms只是一个pointer to struct不是pointer to a table of struct正如您在问题标题中提到的。

关于c - 指向 C 中结构表的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47247678/

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