신규 블로그를 만들었습니다!
1. 구조체와 배열
구조체안에는 멤버 변수로 배열을 사용 할 수 있다.
struct MyStruct
{
int num[10];
int i;
char c;
};
#include <stdio.h>
struct MyClass {
// 배열 또한 사용이 가능 하다.
char teacher[20];
// 일반 변수
int totalScore;
};
int main(void) {
struct MyClass mc1 = { "hongku", 300 };
struct MyClass mc2 = { "minsu", 500 };
printf("mc1.teacher = %s\n", mc1.teacher);
printf("mc1.totalScore = %d\n", mc1.totalScore);
printf("mc2.teacher = %s\n", mc2.teacher);
printf("mc2.totalScore = %d\n", mc2.totalScore);
return 0;
}
또, 구조체 변수를 배열로 만들어서 사용 할 수도 있다.
예를들어,
struct MyStruct ms[3] = {
{'A', 10},
{'B', 20}
};
#include <stdio.h>
struct MyClass {
// 배열 또한 사용이 가능 하다.
char teacher[20];
// 일반 변수
int totalScore;
};
int main(void) {
// 구조체 배열
struct MyClass mc[2] = {
{"hong", 400},
{"hongku", 600}
};
printf("mc[0].teacher = %s\n", mc[0].teacher);
printf("mc[0].totalScore = %d\n", mc[0].totalScore);
printf("mc[1].teacher = %s\n", mc[1].teacher);
printf("mc[1].totalScore = %d\n", mc[1].totalScore);
return 0;
}
2. 구조체와 포인터
배열과 같이 구조체안 멤버로서 포인터를 사용할 수 있다.
#include <stdio.h>
struct DateStruct {
int* day;
int* month;
int* year;
};
int main(void) {
int day = 7;
int month = 2;
int year = 2018;
// 구조체 변수 선언과 초기화
struct DateStruct ds = {&day, &month, &year};
printf("ds : *year, *month, *day = %d-%d-%d\n", *ds.year, *ds.month, *ds.day);
return 0;
}
또, 구조체 변수를 포인터로 사용할 수도 있다.
포인터 구조체에서는 멤버변수에 접근 할 때 ->를 이용하여 접근한다.
아래 코드를 통해 -> 사용법에 대해 알아보자
#include <stdio.h>
struct DateStruct {
char date[20];
};
int main(void) {
// 일반 구조체
struct DateStruct ds = { "2018-02-07" };
// 포인터 구조체
struct DateStruct* pds = NULL;
pds = &ds;
// 데이터 값을 불러올때 -> 를 이용해서 불러온다.
printf("pds->date = %s\n", pds->date);
return 0;
}
'Language > C&C++' 카테고리의 다른 글
C언어 :: gets(), puts() 함수 사용법 #19 (0) | 2018.02.09 |
---|---|
C언어 :: 공용체 (union) #18 (0) | 2018.02.07 |
C언어 :: 구조체 (Struct), 중첩 구조체 #16 (0) | 2018.02.07 |
C언어 :: 포인터와 함수, static #15 (0) | 2018.02.06 |
C언어 :: 포인터와 배열, 포인터를 이용한 문자열 #14 (0) | 2018.02.06 |
최근댓글