본문 바로가기
C언어/C언어 문법

C언어 - 구조체 포인터/구조체 포인터 예제/구조체 포인터 쉽게 이해하기

by 공부가싫다가도좋아 2021. 3. 15.
반응형

구조체 포인터 예제


1. 간단한 예제 

#include<stdio.h>
#include<stdlib.h>

struct student{
	int number;
};

int main(){
	struct student s;
	s.number=10;
	printf("%d\n",s.number);
	
	struct student *pS;
	pS=&s; //주소값을 pS에 저장 
	
	(*pS).number=20;
	printf("%d\n",(*pS).number); 
	printf("%d",s.number);   //s주소값에 20이 저장 됐으므로 결과는 20 
	return 0;
}

*결과

10

20

20

 

2. 학생정보 관리 프로그램(구조체 포인터ver)

#include<stdio.h>

typedef struct student{
	char name[20];
	int age;
}STUDENT;

STUDENT input(){
	STUDENT stu;
	printf("이름 입력:");scanf("%s",&stu.name);
	printf("나이 입력:");scanf("%d",&stu.age);
	return stu;
}

void output(STUDENT *stu){
	stu->age=1005;
	printf("이름:%s\n",stu->name);
	printf("나이:%d\n",stu->age);
}

int main(void){
	STUDENT s;
	int menu;
	while(1){
		printf("메뉴 선택:\n1.입력\n2.출력\n선택>>>");scanf("%d",&menu);
		if(menu==1) s=input();
		if(menu==2) {
			printf("main 이름:%s\n",s.name);
			printf("main 나이:%d\n",s.age);
			output(&s); //포인터로 s.age에 1005값을 집어 넣음 
			printf("main 이름:%s\n",s.name);
			printf("main 나이:%d\n",s.age);	
		}
		
		if(menu==3) break;
	}
	return 0;
}

*결과

 

반응형

댓글