ynnh 发表于 2023-7-12 13:48:58

结构体元素访问

如果我用
typedef struct {
        int data;
        int next;
}SLinkList;


这个方式定义一个静态链表SLinkList a
那我要如何访问a里的各个成员呢,谢谢~{:10_277:}

陶远航 发表于 2023-7-12 13:49:09

通过使用 typedef 你创建了一个 SLinkList 类型,它是一个包含 10 个元素的静态链表。

要访问 SLinkList 中的各个成员,你可以使用索引操作符 [] 来访问指定位置的元素,然后使用点操作符 . 来访问该元素中的成员。

以下是一个示例代码,展示了如何访问 SLinkList 中的成员:

#include <stdio.h>

typedef struct {
    int data;
    int next;
} SLinkList;

int main() {
    SLinkList a;

    // 设置第一个元素的值
    a.data = 1;
    a.next = 2;

    // 打印第一个元素的值
    printf("data: %d\n", a.data);
    printf("next: %d\n", a.next);

    return 0;
}


在上述示例中,我们首先定义了 SLinkList 类型的变量 a。然后,我们通过 a 来访问 SLinkList 中的第一个元素,并使用点操作符 . 分别设置 data 和 next 成员的值。最后,我们打印第一个元素的值。

需要注意的是,由于 SLinkList 是一个数组类型,因此通过索引来访问特定位置的元素是必要的。

isdkz 发表于 2023-7-12 13:52:57

SLinkList 在这里被定义为一个静态链表,它的大小是10,也就是说,它是包含10个元素的数组,每个元素都是一个结构体,结构体包含 data 和 next 两个成员。

你可以像访问数组和结构体成员那样来访问 SLinkList a 中的元素。

例如,如果你想要访问数组的第一个元素(索引为0)的 data 和 next 成员,你可以这样做:

a.data; //访问第一个元素的data成员
a.next; //访问第一个元素的next成员


如果你想要遍历整个数组并访问每个元素的 data 和 next 成员,你可以这样做:

for(int i = 0; i < 10; i++) {
    printf("a[%d].data = %d\n", i, a.data);
    printf("a[%d].next = %d\n", i, a.next);
}


这个代码将会打印出 a 的所有元素的 data 和 next 成员的值。在这里, printf 函数用来输出值, %d 是一个格式说明符,它表示一个十进制整数, \n 表示换行。
页: [1]
查看完整版本: 结构体元素访问