c 语言struct数据结构
时间: 2023-06-14 21:04:38 浏览: 184
C语言中的struct是一种自定义数据类型,可以将不同的数据类型组合在一起形成一个新的数据类型。一个struct可以包含多个成员变量,每个成员变量可以是不同的数据类型,如int、char、float等。
下面是一个简单的struct示例:
```
struct student{
char name[20];
int age;
float score;
};
```
这个struct定义了一个名为student的结构体,包含了三个成员变量:name、age、score。其中,name是一个长度为20的字符数组,age是一个整型变量,score是一个浮点型变量。
我们可以通过以下方式声明一个student类型的变量:
```
struct student stu1;
```
通过点运算符`.`可以访问结构体成员变量:
```
strcpy(stu1.name, "Tom");
stu1.age = 18;
stu1.score = 89.5;
```
在C语言中,struct类型也可以使用typedef定义别名:
```
typedef struct student{
char name[20];
int age;
float score;
}STUDENT;
```
这样,我们就可以使用STUDENT作为struct student的别名来声明变量:
```
STUDENT stu1;
```
相关问题
c 语言struct结构体数组输出
C语言中的`struct`结构体数组是一种数据结构,它将多个同类的数据项组织在一起,每个元素可以看作是一个独立的结构体实例。要输出`struct`结构体数组,你可以遍历数组并打印每个结构体成员。下面是一个基本的例子:
```c
#include <stdio.h>
// 定义一个结构体
struct Student {
char name[20];
int age;
};
int main() {
// 创建一个结构体数组
struct Student students[3] = {
{"Alice", 20},
{"Bob", 22},
{"Charlie", 19}
};
// 遍历数组并输出
for (int i = 0; i < sizeof(students) / sizeof(students[0]); i++) {
printf("学生%d 的姓名是:%s,年龄是:%d\n", i + 1, students[i].name, students[i].age);
}
return 0;
}
```
在这个例子中,我们创建了一个包含三个学生的结构体数组,并通过索引访问每个学生的`name`和`age`字段。运行这个程序会分别输出每个学生的信息。
c 语言顺序栈
顺序栈是一种基于数组的数据结构,它具有后进先出(LIFO)的特点。在 C 语言中,我们可以通过定义结构体和相应的操作函数来实现顺序栈。
以下是一个简单的顺序栈结构体定义:
```c
#define STACK_SIZE 100
typedef struct {
int data[STACK_SIZE];
int top;
} SeqStack;
```
其中,`data` 数组存储栈的元素,`top` 表示栈顶元素在 `data` 数组中的下标,初始化时应该为 `-1`。
接下来是一些常用的顺序栈操作函数实现:
```c
// 初始化栈
void init(SeqStack *s) {
s->top = -1;
}
// 判断栈是否为空
bool isEmpty(SeqStack *s) {
return s->top == -1;
}
// 判断栈是否已满
bool isFull(SeqStack *s) {
return s->top == STACK_SIZE - 1;
}
// 入栈
bool push(SeqStack *s, int x) {
if (isFull(s)) {
return false;
}
s->data[++s->top] = x;
return true;
}
// 出栈
bool pop(SeqStack *s, int *x) {
if (isEmpty(s)) {
return false;
}
*x = s->data[s->top--];
return true;
}
// 获取栈顶元素
bool getTop(SeqStack *s, int *x) {
if (isEmpty(s)) {
return false;
}
*x = s->data[s->top];
return true;
}
```
使用方法示例:
```c
int main() {
SeqStack s;
init(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
int x;
while (pop(&s, &x)) {
printf("%d ", x);
}
printf("\n");
return 0;
}
```
输出结果为:
```
3 2 1
```
这就是 C 语言中的顺序栈实现方法。
阅读全文