C++ (2)
배열
배열의 선언
| 1 | int grad[10]; // 자료형, 배열 이름, 배열 크기 | 
배열의 초기화
| 1 | int grade[5] = {10, 20, 30, 40, 50}; | 
- 만약 배열의 크기가 초기값의 개수보다 크다면 나머지는 0으로 초기화 된다.
- 배열의 크기를 선언하지 않으면 초기값의 개수에 맞춰서 선언된다.
배열의 복사
| 1 | 
 | 
실행결과
| 1 | b[0] = 1 | 
다차원 배열
| 1 | int s[10]; // 1차원 배열 | 
- 혹은 n차원 배열을 n중 루프를 통하여 데이터를 처리할 수 있다.
포인터
메모리의 주소를 가지고 있는 변수.
- &를 붙임으로써 변수의 주소를 알 수 있다.
| 1 | cout << "i의 주소: " << &i << endl; | 
포인터의 선언
| 1 | int *p; // 정수를 가리키는 포인터 | 
포인터와 변수의 연결
| 1 | int *p = &i; // 변수 i의 주소가 포인터 p로 대입 | 
- 포인터 초기화시 NULL로 한다.
포인터의 용도
- 동적으로 할당된 메모리를 사용하는 경우
- 함수의 매개 변수로 변수의 주소를 전달하는 경우
- 클래스의 멤버 변수나 멤버 함수를 호출하는 경우
동적 메모리 할당
| 1 | 
 | 

| 1 | 
 | 
실행결과
| 1 | pi = 00824278 | 
- new로 동적 메모리 할당
- *pi = 100;에서 동적 메모리 사용
- delete로 동적 메모리 반납
const 포인터
| 1 | const int *p1; | 
- 위의 상황은 p1이 가리키는 내용이 정수형 상수이다
- 아래의 상황은 p2가 상수라는 의미이다
swap을 통한 참조에 의한 호출 예제
| 1 | 
 | 
실행결과
| 1 | swap() 호출전: a = 100, b = 200 | 
