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 |