如何在 C 语言中访问指向结构的指针?
cserver side programmingprogramming更新于 2025/5/15 9:37:17
指向结构的指针保存整个结构的地址。
主要用来创建复杂的数据结构,如链表、树、图等。
可以使用称为箭头运算符 ( -> ) 的特殊运算符访问结构的成员。
声明
以下是指向结构 − 的指针的声明
struct tagname *ptr;
例如,struct student *s;
访问
您可以使用以下 − 访问指向结构的指针
Ptr-> membername;
例如,s->sno、s->sname、s->marks;
示例
以下是访问指向结构的指针的 C 程序 −
#include<stdio.h> struct classroom{ int students[7]; }; int main(){ struct classroom clr = {2, 3, 5, 7, 11, 13}; int *ptr; ptr = (int *)&clr; printf("%d",*(ptr + 4)); return 0; }
输出
当执行上述程序时,它会产生以下结果 −
11
解释
此处,指针变量 ptr 保存对象 clr 的第一个值 2 的地址。然后,指针变量的地址增加 4,最后显示该值。
例如,
*(ptr + 0) = 2 *(ptr + 1) = 3 *(ptr + 2) = 5 *(ptr + 3) = 7 *(ptr + 4) = 11 *(ptr + 5) = 13
考虑另一个简单示例来了解指向结构的指针 −
示例
struct student{ int sno; char sname[30]; float marks; }; main ( ){ struct student s; struct student *st; printf("enter sno, sname, marks :"); scanf ("%d%s%f", & s.sno, s.sname, &s. marks); st = &s; printf ("details of the student are
"); printf ("Number = %d
", st ->sno); printf ("name = %s
", st->sname); printf ("marks =%f", st->marks); getch ( ); }
输出
当执行上述程序时,它会产生以下结果 −
enter sno, sname, marks :1 bhanu 69 details of the student are Number = 1 name = bhanu marks =69.000000