c语言结构体指针输入
时间: 2023-07-09 08:18:55 浏览: 58
对于结构体指针的输入,可以通过以下方式实现:
1. 定义一个结构体类型:
```
struct Person {
char name[20];
int age;
};
```
2. 定义一个指向结构体的指针:
```
struct Person *p;
```
3. 为结构体指针分配内存空间:
```
p = (struct Person*)malloc(sizeof(struct Person));
```
4. 对结构体指针进行赋值:
```
strcpy(p->name, "John");
p->age = 25;
```
在赋值时,使用箭头运算符“->”来访问结构体指针的成员变量,它等价于使用点运算符“.”来访问结构体的成员变量。
5. 最后,记得释放内存空间:
```
free(p);
```
相关问题
c语言结构体指针取值
好的,以下是用C语言的指向结构体指针,从键盘输入3名学生信息,包含学号、姓名、三门课程成绩的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 3
struct student {
int id;
char name[20];
float score[3];
};
int main() {
struct student *ptr;
int i;
ptr = (struct student*) malloc(MAX_STUDENTS * sizeof(struct student));
for (i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号:");
scanf("%d", &(ptr+i)->id);
printf("姓名:");
scanf("%s", (ptr+i)->name);
printf("三门课程成绩:");
scanf("%f %f %f", &(ptr+i)->score[0], &(ptr+i)->score[1], &(ptr+i)->score[2]);
}
printf("\n学生信息如下:\n");
for (i = 0; i < MAX_STUDENTS; i++) {
printf("学号:%d\n", (ptr+i)->id);
printf("姓名:%s\n", (ptr+i)->name);
printf("三门课程成绩:%.2f %.2f %.2f\n", (ptr+i)->score[0], (ptr+i)->score[1], (ptr+i)->score[2]);
}
free(ptr);
return 0;
}
```
这段代码中,我们定义了一个结构体 `student`,包含学号、姓名和三门课程成绩。然后我们使用指向结构体的指针 `ptr`,动态分配了一个大小为 `MAX_STUDENTS` 的结构体数组。
接着,我们使用 `for` 循环,从键盘输入每个学生的信息,包括学号、姓名和三门课程成绩。注意,我们使用了指向结构体的指针 `ptr` 来访问每个学生的信息。
最后,我们使用 `for` 循环,输出每个学生的信息,包括学号、姓名和三门课程成绩。
最后,我们使用 `free` 函数释放了动态分配的内存。
希望这个示例能够帮助你理解如何使用指向结构体的指针从键盘输入学生信息。
c语言 scanf+结构体指针
结构体指针可以用来访问结构体中的成员变量。在 C 语言中,使用 scanf 函数可以读取用户输入的数据。以下是使用 scanf 和结构体指针来读取结构体成员变量的代码示例:
```c
#include <stdio.h>
struct student {
char name[20];
int age;
float score;
};
int main() {
struct student stu;
struct student *p = &stu;
printf("请输入学生的姓名、年龄、成绩:\n");
scanf("%s %d %f", p->name, &(p->age), &(p->score));
printf("学生信息:\n");
printf("姓名:%s\n", p->name);
printf("年龄:%d\n", p->age);
printf("成绩:%f\n", p->score);
return 0;
}
```
在上面的示例代码中,首先定义了一个结构体类型 `student`,包含了学生的姓名、年龄和成绩。然后在 `main` 函数中,定义了一个 `stu` 的结构体变量,并用 `&` 取得了它的地址赋值给指针变量 `p`。接着,使用 `scanf` 函数读取用户输入的姓名、年龄和成绩,并通过指针变量 `p` 访问结构体成员变量,最后输出学生的信息。
需要注意的是,在使用 `scanf` 函数读取结构体成员变量时,需要使用 `&` 取地址符号来获取变量的地址。