admin 管理员组

文章数量: 887021


2024年1月28日发(作者:textarea拉伸样式)

C语言基础—结构体数据类型

C语言是一种结构化的、通用的、面向过程的计算机程序设计语言,它通过一系列指令来告诉计算机完成特定的任务。在C语言中,结构体是一种自定义的数据类型,它可以包含不同类型的数据项,这些数据项可以是整数、浮点数、字符等等。

结构体的定义类似于类的定义,可以包含成员变量和成员函数。通常情况下,结构体中的成员变量是公开的,可以直接访问和赋值。

下面是一个简单的结构体的定义和示例:

```

struct Student

int id;

char name[20];

float score;

};

int mai

struct Student stu1;

= 1;

strcpy(, "Tom");

= 90.5;

printf("ID: %dnName: %snScore: %.2fn", , ,

);

return 0;

```

在上面的例子中,我们定义了一个名为`Student`的结构体,它包含了学生的id、name和score。在`main`函数中,我们通过`.`操作符来访问和赋值结构体的成员变量。

结构体可以用来定义复杂的数据结构,如链表、树等。下面是一个使用结构体实现链表的例子:

```

struct ListNode

int data;

struct ListNode* next;

};

struct ListNode* createNode(int data)

struct ListNode* newNode;

newNode = (struct ListNode*)malloc(sizeof(struct ListNode));

if (newNode == NULL)

printf("Memory allocation failed!n");

return NULL;

}

newNode->data = data;

newNode->next = NULL;

return newNode;

void insertNode(struct ListNode** head, struct ListNode*

newNode)

if (*head == NULL)

*head = newNode;

} else

struct ListNode* cur = *head;

while (cur->next != NULL)

cur = cur->next;

}

cur->next = newNode;

}

void printList(struct ListNode* head)

struct ListNode* cur = head;

while (cur != NULL)

printf("%d ", cur->data);

cur = cur->next;

}

printf("n");

int mai

struct ListNode* head = NULL;

insertNode(&head, createNode(1));

insertNode(&head, createNode(2));

insertNode(&head, createNode(3));

printList(head);

return 0;

```

在上面的例子中,我们定义了一个名为`ListNode`的结构体,它包含了一个整数类型的数据项和一个指向下一个结点的指针。通过使用`createNode`函数来创建一个新结点,并使用`insertNode`函数来将结点插入到链表中。最后使用`printList`函数来遍历并打印链表。

结构体在C语言中非常重要,它可以用来组织和管理复杂的数据。通过定义不同类型的结构体,并将其组合起来,我们可以构建出各种复杂的数据结构和对象。有了结构体,我们可以更加灵活地处理和操作数据,提高程序的可读性和可维护性。


本文标签: 结构 定义 成员