배열
- 자료형을 묶음으로 표현
- 동일한 자료형으로 변수를 한번에 여러개 할당하고 싶을 때
int iArray[10] = { }; //다 0
int형 10묶음!
- 배열에서 개별요소로 접근하는 방법 (인덱스 접근)
iArray[4] = 10; //5번째 요소
- 선언 뿐만이 아니라 초기화도 할 수 있다 (초기화되지 않은 것들은 다 0)
int arr[10] = {1,2,3,4,5,6 } //나머지는 0
- 배열은 메모리가 연속적인 구조이다!!
- 배열을 초과해서 접근하면 우연치 않게 다른 변수의 값이 생뚱맞게 들어갈 수 있다!!
- 배열을 초과해서 접근하면 안된다!!!
구조체(struct)
- 사용자 정의 자료형 (User Define DataType)
- typedef 는 type define이라는 뜻
- 내가 자료형을 내 방식대로 새로 만들고 싶을 때 (내 코드에서만 적용됨, 통함)
→ 나만의 자료형 커스텀
- 내가 내 마음대로 자료형을 만듦 (자료형 새롭게 디자인)
//사용자 정의 자료형
typedef struct _tagMyST{
int a;
float f;
}MYST;
int main() {
//구조체
MYST t;
return 0;
}
- 그럼 t의 자료형 크기는 얼마나 될까?
→ 8byte
//자료형의 크기 알고 싶을 때 : sizeof() 사용
int iSize = sizeof(MYST); //8byte
- MYST에는 int 파트도 있고 float 파트도 있다.
그럼 세부적인 요소로 접근하고 싶다면? int 또는 float로..!
- 내가 선언한 변수의 세부적인 내용에 접근할 때
//사용자 정의 자료형
typedef struct _tagMyST{
int a;
float f;
}MYST;
int main() {
//구조체
MYST t;
t.a = 10;
t.f = 10.2312f;
return 0;
}
- 내가 만든 자료형이 내가 또 만든 자료형의 부분이 될 수도 있다. (구조체도 계속 확장될 수 있다)
//사용자 정의 자료형
typedef struct _tagMyST{
int a;
float f;
}MYST;
//사용자 정의 자료형
typedef struct _tagBig{
MYST t;
int i;
char c;
}Big;
- 타입을 재정의할 수도 있다. (타입의 새로운 이름부여 가능)
typedef int INT; //int를 INT로 사용해도 int 자료형으로 인식함. (int의 새로운 이름이다!!)
- 구조체 선언할 때마다 매번 struct 붙이기 번거로움
struct NewStruct{
int a;
short s;
}
int main(){
struct NewStruct a; //NewStruct 타입의 변수를 a라고 하나 설정하겠다!
struct NewStruct b;
}
- 사용할 때마다 struct를 계속 붙이는 것이 번거롭기 때문에 "큰 이름"을 한번 더 부여한 것이다!! (새로운 이름을 준다)
(typedef- 타입을 새롭게 정의한 것이다)
typedef struct NewStruct{
int a;
short s;
}NEWST;
int main(){
NewStruct a; //struct를 사용하지 않고도 a라는 변수 선언 가능
}
- 구조체를 선언 뿐만 아니라 초기화도 할 수 있다.
MYST t = {100, 3.14f};
참고 영상
https://www.youtube.com/watch?v=Nrtg_YSqwu4&list=PL4SIC1d_ab-aOxWPucn31NHkQvNPHK1D1&index=22
'C++' 카테고리의 다른 글
[C++] ios_base::sync_with_stdio(0) (0) | 2023.03.07 |
---|---|
[C++] 지역변수, 전역변수, 정적변수, 외부변수 (0) | 2023.02.23 |
[C++] 재귀함수 (0) | 2023.02.23 |
[C++] 팩토리얼 함수 구현하기 (0) | 2023.02.23 |
Visual Studio 단축키 & 편의 사항 (0) | 2023.02.23 |