June is Combung

구조체 본문

C 자료구조와 알고리즘

구조체

june__Park 2021. 6. 29. 18:53
#include <stdio.h>
#include <string.h>

// 구조체 : 여러 데이터를 한 세트로 묶어주기 위한 설계도 
// 구조체 정의 (설계도 만들기)
/*struct pokemon {
	char name[100];
	int level;
	int hp;
};

// 구조체 -> 사용자 정의 자료형으로 등록 
typedef struct pokemon POK;
*/
typedef struct pokemon {	
	char name[100];
	int level;
	int hp; 
} POK;

void print_pokemon(POK p){
	printf("이름 : %s \n", p.name);
	printf("레벨 : %d \n", p.level);
	printf("체력 : %d \n", p.hp);
	return;
}
void level_up(POK* p){
	//++(*p).level;
	++p->level;

	/*
		'.' : 이름.필드명    (구조체변수명.멤버변수명)
		'->' : 주소->필드명  (구조체의 주소->멤버변수명)
	*/
}
void ex01(){
	POK p1 = { "피카츄", 100, 1000};
	struct pokemon p2, p3;

	strcpy_s(p2.name, 100, "라이츄"); //p2.name = "라이츄";
	p2.level = 10;
	p2.hp = 1000;

	strcpy_s(p3.name, 100, "푸린");
	p3.level = 20;
	p3.hp = p3.level * 100;

	print_pokemon(p1);
	print_pokemon(p2);
	print_pokemon(p3);

	level_up(&p1);
	level_up(&p3);
	print_pokemon(p1);
	print_pokemon(p3);
}

/*
	< 자기 참조 구조체 >
	=> 자기 자신과 똑같은 모양을 참조하는 포인터 멤버를 가지는 구조체	
*/
typedef struct node {
	int data;
	struct node* next;
} NODE; 

void main(){
	ex01();

}

'C 자료구조와 알고리즘' 카테고리의 다른 글

스택과 연결리스트  (0) 2021.06.29
스택과 시간복잡도  (0) 2021.06.29
동적할당  (0) 2021.06.29
swap  (0) 2021.06.29
문자열 일치불일치  (0) 2021.06.29
Comments