C语言中head->name什么意思
时间: 2024-02-06 08:10:54 浏览: 130
这是一个指向结构体(或类)的指针head,通过箭头运算符"->"访问结构体(或类)中的成员变量name。可以理解为head指向的结构体(或类)中有一个成员变量name,通过箭头运算符"->"来访问该成员变量。假设结构体(或类)定义如下:
```
struct Person {
char name[20];
int age;
};
```
那么,head->name就是访问head指向的Person结构体中的name成员变量,即获取该结构体中的name字符串。
相关问题
void p(pstudent head) { printf("%ld\t\t", head->id); printf("%s\t\t", head->name); printf("%s\t\t", head->gender); printf("%d岁\t\t", head->age); printf("%s\t\t", head->clas); printf("%d-%d-%d\t\t", head->date[0], head->date[1], head->date[2]); printf("%d-%d-%d\t\t", head->time[0], head->time[1], head->time[2]); }
这是一个C语言函数,用于输出学生信息。函数的参数是一个指向结构体pstudent的指针head,表示链表的头指针。
函数中依次调用printf函数输出学生的各项信息,包括id、name、gender、age、clas、date和time。其中,date和time分别是一个长度为3的整型数组,代表学生的入学日期和入学时间。
在输出date和time时,使用了printf函数的格式化输出,将数组中的三个元素分别输出,并在它们之间加上了横线“-”作为分隔符,使输出的日期和时间更加规范和易读。
整个函数的作用是将一个学生的所有信息输出到控制台上,便于查看学生的信息。
C语言如何改进这段代码void id(){ int sID; printf("请输入要查找的学生学号: \n"); scanf("%d",&sID); Node* p=g_head; while(p!=NULL){ if(p->stu1.ID==sID){ printf("\t%d\t,%s\t,%s\t,%s\t,%s\t,%s\t,%s\t\n",p->stu1.ID,p->stu1.name,p->stu1.sex,p->stu1.Class,p->stu1.date,p->stu1.Tel,p->stu1.home); } p=p->pNext; } if(p==NULL){ printf("无该学生信息"); } } void Name(){ char sName[20]; printf("请输入要查找的学生姓名: \n"); scanf("%s",&sName); Node* p=g_head; while(p!=NULL){ if(strcmp(p->stu1.name,sName)==0){ printf("\t%d\t,%s\t,%s\t,%s\t,%s\t,%s\t,%s\t\n",p->stu1.ID,p->stu1.name,p->stu1.sex,p->stu1.Class,p->stu1.date,p->stu1.Tel,p->stu1.home); } p=p->pNext; } if(p==NULL){ printf("无该学生信息"); } } void tel(){ char sTel[20]; printf("请输入要查找的学生联系方式: \n"); scanf("%s",&sTel); Node* p=g_head; while(p!=NULL){ if(strcmp(p->stu1.Tel,sTel)==0){ printf("\t%d\t,%s\t,%s\t,%s\t,%s\t,%s\t,%s\t\n",p->stu1.ID,p->stu1.name,p->stu1.sex,p->stu1.Class,p->stu1.date,p->stu1.Tel,p->stu1.home); } p=p->pNext; } if(p==NULL){ printf("无该学生信息"); } } void find() { printf("按学号查询请按1\n"); printf("按姓名查询请按2\n"); printf("按联系方式查询请按3\n"); int i; scanf("%d",&i); switch(i) { case 1: id(); break; case 2: Name(); break; case 3: tel(); break; } }使其能在学生信息管理系统中运行
这段代码看起来是在学生信息管理系统中实现了按学号、姓名、联系方式查询学生信息的功能。为了使其能在学生信息管理系统中运行,你需要在该系统的主函数中调用find()函数。具体来说,在主函数中添加如下代码即可:
```c
int main()
{
// 其他代码
find(); // 调用查询函数
// 其他代码
return 0;
}
```
这样,在运行学生信息管理系统时,程序会提示用户按照不同的查询方式进行查询,用户输入相应的数字后,程序会调用相应的查询函数进行查询。注意,为了使查询函数能正确地读取学生信息,你需要在查询函数的开头添加如下代码:
```c
extern Node* g_head; // 声明全局变量g_head
```
这样,查询函数就能正确地读取g_head指向的链表了。
阅读全文