반응형
14강 구조체
구조체란 간단한 변수나 배열로는 나타내기 어려운 데이터들을 나타내는 방법
코드로 예를 들어 보면,
#include <stdio.h>
struct Point
{
int x;
int y;
}p1, p2, p3;
int main()
{
p1.x = 100; p1.y = 0;
p2.x = 0; p2.y = 100;
p3.x = 100; p3.y = 100;
printf("%d %d\n", p1.x, p1.y);
printf("%d %d\n", p2.x, p2.y);
printf("%d %d\n", p3.x, p3.y);
return 0;
}
이러한 구조체 멤버 변수 출력을 할 수 있을 것입니다.
아래는 구조체 포인터를 가지고 출력하는 방법입니다.
위와 같이 여러 변수와 배열로 하나의 구조체를 선언할 수 있다.
여기서 아래와 같이 구조체의 변수를 직접 설정할 수도 있다
struct book mybook;
또한 구조체는 포인터와 함께 쓰일 수 있다
구조체의 초기화 방법은 다음과 같다
struct house apt = { .value = 251.00, .com="hyundai", .name="fruzio"};
//(예시)아파트의 가격, 시공사, 이름 등을 초기화
구조체란 간단한 변수나 배열로는 나타내기 어려운 데이터들을 나타내는 방법임
코드로 알아보면,
struct book //구조체 선언 -> 문자 배열 2개와 float형 변수 1개로 이뤄진 구조체
{
char title[MAXTITL];
char author[MAXAUTL];
float value;
};
//중괄호 사이의 변수들은 모두 멤버 변수
위와 같이 여러 변수와 배열로 하나의 구조체를 선언할 수 있다.
여기서 아래와 같이 구조체의 변수를 직접 설정할 수도 있다
struct book mybook;
또한 구조체는 포인터와 함께 쓰일 수 있다
구조체의 초기화 방법은 다음과 같다
struct house apt = { .value = 251.00, .com="hyundai", .name="fruzio"};
//(예시)아파트의 가격, 시공사, 이름 등을 초기화
구조체 포인터
구조체 포인터는 말 그대로 구조체를 가리키는 포인터를 의미한다.
구조체에서 멤버 변수로 접근할 때는 .을 사용했지만 구조체 포인터에서 멤버 변수로 접근할 때는 -> 을 사용하면 된다.
#include <stdio.h>
#include <stdlib.h>
struct Point
{
int x;
int y;
};
int main()
{
struct Point* p1 = malloc(sizeof(struct Point));
struct Point* p2 = malloc(sizeof(struct Point));
struct Point* p3 = malloc(sizeof(struct Point));
p1->x = 100; p1->y = 0;
p2->x = 0; p2->y = 100;
p3->x = 100; p3->y = 100;
printf("%d %d\n", p1->x, p1->y);
printf("%d %d\n", p2->x, p2->y);
printf("%d %d\n", p3->x, p3->y);
free(p1);
free(p2);
free(p3);
return 0;
}
반응형
'programming language > C' 카테고리의 다른 글
c언어 소스 코드를 실행하는 과정 (0) | 2024.09.22 |
---|---|
[C언어] 13강 파일 입출력 (0) | 2023.02.22 |
[C언어]12강 기억 클래스, 연결, 메모리 관리 (0) | 2023.02.17 |
[C언어] 11강 문자열과 문자 I/O 함수 (0) | 2023.02.17 |
[C언어]10강 포인터와 배열 (0) | 2023.02.10 |
댓글