如何在 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

相关文章