배열 (Array)
▶ 같은 자료형의 변수를 여러 개 만드는 경우에 사용한다. (타입이 같은 데이터들을 하나로 묶는 방법.)
▷ 예시 : int list 1, list 2, list3, list4, list5, list6; → int list [6];
▶ 1차원 배열(One-Dimensional Array; Vector)
int value, list[6]; // 정수형 배열과 변수 선언
list[0] = 100; // 배열 첫번째 원소에 값을 할당.(100 할당)
value = list[0]; // 배열 첫번째 원소의 값을 가져와 value 수에 할당. (value = 100)
▶ 2차원 배열(Two-Dimensional Array; Matrix)
int list[3][5]; //정수형 2차원 배열 선언
구조체 (Structure)
▶ 다른 자료형의 변수를 여러 개 만드는 경우에 사용한다. (타입이 다른 데이터를 하나로 묶는 방법.)
▶ 구조체 선언
struct test {
char name[10]; // 문자배열로 된 이름
int studentNum; // 학생 번호를 나타내는 정수값
double gradeAvg; // 평균평점을 나타내는 실수값
};
▷ test : 구조체 이름. 사용자가 정의한 새로운 자료형.
▷ name [10], studentNum, gradeAvg : 구조체 멤버.
▶구조체 변수 선언 & 구조체 사용
struct test T; //구조체 변수 선언
strcpy(T.name, "SuJin"); //strcpy : 문자열 복사 (뒤에 있는 "SuJin"을 앞의 T.name에 복사.)
T.studentNum = 22;
T.gradeAvg = 4.3;
▷ T : 구조체 변수 선언. test 구조체를 사용할 때는 지정한 대로 test가 아닌 T로 사용.
▷ T.studentNum / T.gradeAvg : 구조체의 변수를 사용할 때는 < 구조체.구조체 멤버 > 형식으로 사용.
▶ 구조체에서 typedef의 사용
typedef struct test{
char name[10];
int studentNum;
double gradeAvg;
}Grade; // 구조체 자료형은 관례적으로 대문자로 시작
▷ typedef : 기존 자료형에 새로운 이름을 부여하여, 복잡한 유형의 자료형 선언을 간단하게 처리할 수 있음.
▷ Grade : 새로운 데이터 타입. 구조체 자료형은 관례적으로 대문자로 시작.
Grade G; // struct test G 로 선언하지 않고 새로 만든 데이터 타입을 사용하여 바로 선언.
▷ G : 구조체 변수 ( G = Grade = struct test )
▶ 구조체에서 typedef 활용 예시
#include <stdio.h>
typedef struct information{
char name[10];
int age;
double height;
}Inform;
int main(void)
{
Inform a = {"Lee", 22, 160.3};
Inform b = {"Seong", 27, 175.3};
return 0;
}
참고 서적 : <C언어로 쉽게 풀어쓴 자료구조>, <윤성우의 열혈 C 프로그래밍>
'Programming > 자료구조' 카테고리의 다른 글
[자료구조] 09. 동적 메모리 할당 (0) | 2021.10.29 |
---|---|
[자료구조] 08. 포인터 (0) | 2021.10.27 |
[자료구조] 06. 재귀 (Recursion) (0) | 2021.10.23 |
[자료구조] 05. 알고리즘의 효율성 (최선, 평균,최악) (0) | 2021.10.22 |
[자료구조] 04. 빅오메가 표기법 & 빅세타 표기법 (0) | 2021.10.21 |