使用指针和结构体编写代码
时间: 2023-08-13 17:04:59 浏览: 99
好的,下面是一个简单的例子。
```c
#include <stdio.h>
// 定义结构体
struct person {
char name[20];
int age;
};
// 定义函数,传入指向结构体的指针
void print_person(struct person *p) {
printf("Name: %s\n", p->name);
printf("Age: %d\n", p->age);
}
int main() {
// 定义结构体变量
struct person p1 = {"Tom", 25};
// 定义指向结构体的指针
struct person *p2 = &p1;
// 调用函数,并传入指针
print_person(p2);
return 0;
}
```
这个例子中,我们定义了一个 `person` 结构体,包含名字和年龄两个成员变量。然后定义了一个函数 `print_person`,该函数接受一个指向 `person` 结构体的指针,并打印出该结构体的成员变量。在 `main` 函数中,我们定义了一个 `person` 结构体变量 `p1`,并且定义了一个指向该结构体变量的指针 `p2`。然后将指针作为参数传递给 `print_person` 函数,打印出了结构体成员变量的值。
相关问题
结构体指针函数的使用
结构体指针函数是指返回结构体指针的函数。通过结构体指针函数,我们可以方便地操作结构体的成员和属性。下面是结构体指针函数的使用方法:
1. 定义结构体类型:首先需要定义一个结构体类型,包含所需的成员变量。
2. 编写结构体指针函数:在函数中,可以通过动态内存分配来创建一个结构体对象,并返回该对象的指针。
3. 调用结构体指针函数:在主程序中,可以调用结构体指针函数来获取结构体对象的指针,并通过指针来访问和修改结构体的成员。
下面是一个示例代码,演示了结构体指针函数的使用:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体类型
typedef struct {
int id;
char name[20];
} Student;
// 结构体指针函数
Student* createStudent(int id, const char* name) {
// 动态分配内存
Student* student = (Student*)malloc(sizeof(Student));
if (student == NULL) {
printf("内存分配失败\n");
return NULL;
}
// 设置成员变量的值
student->id = id;
strcpy(student->name, name);
return student;
}
int main() {
// 调用结构体指针函数创建对象
Student* stu = createStudent(1, "Tom");
// 访问结构体成员
printf("学生ID:%d\n", stu->id);
printf("学生姓名:%s\n", stu->name);
// 释放内存
free(stu);
return 0;
}
```
阅读全文