能帮我写一个在包含结构体和int和char型元素都有,并且在里面将元素的指针取出来放到数组上进行数据读取写入的程序吗
时间: 2024-02-12 07:07:09 浏览: 53
结构体和指针的小程序
当然可以,以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
char name[20];
float score;
} Student;
int main() {
// 定义结构体数组
Student students[3] = {
{1, "Alice", 90.5},
{2, "Bob", 85.0},
{3, "Charlie", 92.5}
};
// 定义指针数组
void* ptrs[6];
// 将结构体元素的指针存入指针数组
int i;
for (i = 0; i < 3; i++) {
ptrs[i*2] = &students[i].id;
ptrs[i*2+1] = &students[i].name;
}
ptrs[6] = &students[0].score;
// 读取指针数组中的元素
for (i = 0; i < 6; i++) {
if (i % 2 == 0) {
printf("id: %d\n", *(int*)ptrs[i]);
} else {
printf("name: %s\n", (char*)ptrs[i]);
}
}
// 修改指针数组中的元素
*(float*)ptrs[6] = 95.0;
// 输出修改后的元素
printf("score: %.1f\n", *(float*)ptrs[6]);
return 0;
}
```
在这个程序中,我们定义了一个包含结构体和int型和char型元素的结构体数组,并且定义了一个指针数组,将结构体元素的指针存入指针数组中。然后我们可以通过遍历指针数组来读取和修改结构体元素的值。注意在读取和修改时需要根据指针的类型进行类型转换。
阅读全文