구조에 대한 포인터는 전체 구조의 추가를 보유합니다.
연결 목록, 트리, 그래프 등과 같은 복잡한 데이터 구조를 만드는 데 사용됩니다.
구조체의 멤버는 화살표 연산자( -> )라고 하는 특수 연산자를 사용하여 액세스할 수 있습니다.
선언
다음은 C 프로그래밍에서 구조체에 대한 포인터 선언입니다. -
struct tagname *ptr;
예를 들어 - struct 학생 *s -
액세스
구조체에 대한 포인터에 액세스하는 방법은 아래에 설명되어 있습니다.
Ptr-> membername;
예:s->sno, s->sname, s->marks;
예시 프로그램
다음 프로그램은 구조체에 대한 포인터 사용법을 보여줍니다 -
#include<stdio.h>
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\n", st ->sno);
printf ("name = %s\n", st->sname);
printf ("marks =%f\n", st ->marks);
getch ( );
} 출력
다음 결과를 생성하는 위의 프로그램을 실행해 보겠습니다. -
enter sno, sname, marks:1 Lucky 98 details of the student are: Number = 1 name = Lucky marks =98.000000
예시 2
구조체에 대한 포인터의 기능을 설명하는 또 다른 예를 고려하십시오.
#include<stdio.h>
struct person{
int age;
float weight;
};
int main(){
struct person *personPtr, person1;
personPtr = &person1;
printf("Enter age: ");
scanf("%d", &personPtr->age);
printf("Enter weight: ");
scanf("%f", &personPtr->weight);
printf("Displaying:\n");
printf("Age: %d\n", personPtr->age);
printf("weight: %f", personPtr->weight);
return 0;
} 출력
다음 결과를 생성하는 위의 프로그램을 실행해 보겠습니다. -
Enter age: 45 Enter weight: 60 Displaying: Age: 45 weight: 60.000000