【发布时间】:2021-08-01 11:48:48
【问题描述】:
在这里,我编写了一些带有指向结构的指针的代码。我输入了一些typedef,但我不知道如何将它与我的指针结构一起使用。我在互联网上找不到任何帮助。总是 typedef 结构,或指针结构,但不涉及这 3 个。
#include<stdio.h>
#include<stdlib.h>
typedef struct student{
char NAME[20];
int ID;
float GRADE;
char INSTRUCTOR[20];
}student;
int main()
{
struct student Raf = {"Rafael Sunga", 1775, 1.35, "Kenneth Auxillos"};
struct student *ptr_Raf; //declaring ptr to a structure
ptr_Raf = &Raf; //asigning address of variable with &
printf("Student Name: %s\n", ptr_Raf->NAME);
printf("ID: %d\n", ptr_Raf->ID);
printf("Grade: %.2f\n", ptr_Raf->GRADE);
printf("Instructor: %s\n", ptr_Raf->INSTRUCTOR);
}
【问题讨论】:
-
请描述您怀疑的原因。
-
我不确定你在问什么。这段代码不适合你吗?
-
1 指针类型定义。 2 结构指针。第三个是什么?
-
如果我没听错的话,你想定义一个类型,它已经是一个指针。这可以通过
typedef struct {} student, *pstudent;实现,但你永远不应该这样做。在 typedef 中隐藏指针被认为是不好的做法。 -
显示的代码没有使用typedef名称
student;它只使用结构标签struct student。您可以将struct student中的一个或两个替换为student内的main(),并且代码的含义不会改变。请注意,在成员名称中使用全大写是不常见的;全大写符号通常保留给宏和枚举常量。对结构成员名称使用小写或混合大小写的名称。