结构体指针例子
时间: 2023-07-20 19:13:10 浏览: 45
好的,这里是一个结构体指针的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个结构体
struct student {
char name[20];
int age;
float score;
};
int main() {
// 定义一个结构体指针
struct student *p;
// 动态分配内存
p = (struct student*) malloc(sizeof(struct student));
// 赋值
strcpy(p->name, "Tom");
p->age = 18;
p->score = 90.5;
// 输出
printf("Name: %s\n", p->name);
printf("Age: %d\n", p->age);
printf("Score: %.2f\n", p->score);
// 释放内存
free(p);
return 0;
}
```
这个例子中,我们定义了一个 `struct student` 结构体,然后定义了一个指向该结构体的指针 `p`,使用 `malloc` 函数动态分配了内存,并赋值给 `p`。然后,我们通过指针访问结构体成员,输出了结构体的信息。最后,使用 `free` 函数释放了动态分配的内存。
相关问题
c语言结构体指针例子
下面是一个简单的 C 语言结构体指针的例子:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[50];
int age;
float gpa;
};
int main() {
struct student stu1;
struct student *ptr;
ptr = &stu1;
strcpy(ptr->name, "John Doe");
ptr->age = 20;
ptr->gpa = 3.5;
printf("Name: %s\n", ptr->name);
printf("Age: %d\n", ptr->age);
printf("GPA: %.2f\n", ptr->gpa);
return 0;
}
```
在这个例子中,我们定义了一个名为 `student` 的结构体,它包含了学生的姓名、年龄和 GPA。然后我们在 `main()` 函数中创建了一个 `stu1` 的结构体实例和一个指向 `stu1` 的结构体指针 `ptr`。接着,我们使用 `strcpy()` 函数将字符串 "John Doe" 复制到 `ptr->name` 中,使用箭头运算符 `->` 设置 `ptr->age` 和 `ptr->gpa`。最后,我们使用 `printf()` 函数输出结构体中的值。
需要注意的是,在访问结构体中的成员时,我们使用的是 `->` 运算符而不是 `.` 运算符,因为我们是通过指针来访问结构体成员的。
结构体指针函数 形参为结构体指针 c语言程序例子
结构体指针函数是指函数的形参为结构体指针。通过使用结构体指针作为函数的形参,可以在函数内部对结构体进行修改,从而实现对结构体的操作。下面是一个C语言程序的例子,演示了结构体指针函数的用法:
```c
#include <stdio.h>
// 定义一个结构体
struct Student {
char name[20];
int age;
};
// 结构体指针函数,修改结构体的值
void modifyStudent(struct Student *ptr) {
// 修改结构体的值
strcpy(ptr->name, "John");
ptr->age = 20;
}
int main() {
// 定义一个结构体变量
struct Student s;
// 调用结构体指针函数,传递结构体指针作为参数
modifyStudent(&s);
// 输出修改后的结构体的值
printf("Name: %s\n", s.name); // 输出:Name: John
printf("Age: %d\n", s.age); // 输出:Age: 20
return 0;
}
```
在上面的例子中,我们定义了一个结构体`Student`,包含了姓名和年龄两个成员变量。然后我们定义了一个结构体指针函数`modifyStudent`,该函数的形参为结构体指针`ptr`。在函数内部,我们通过指针修改了结构体的值。最后,在`main`函数中,我们创建了一个结构体变量`s`,并将其地址传递给`modifyStudent`函数进行修改。最终,我们输出了修改后的结构体的值。