※ 배열을 선언하면서 초기화
ex)
int num[5] = {12, 14, 15, 45, 2};
int result[5][3] = { {1, 3, 5}, {2, 5, 2}, {4 ,6, 3}, {8, 3, 32}, {74, 23, 54} };
※ 배열의 크기를 정하지 않고 초기화 하기
int num[] = {12, 14, 15, 45};
-------------------------------------------------------------------------------------------
※ 배열의 시작 주소 알아보기
배열의 이름은 기억 공간의 주소를 저장하는 포인터와 같은 역할을 한다.
그래서 배열의 이름을 이용하면 배열이 시작되는 곳의 주소를 알 수 있다.
배열의첫 번째 원소 앞에 &를 붙여도 배열의 시작 주소를 알 수 있다.
배열의 이름과 첫 번째 원소를 이용해 배열이 시작되는 곳의 주소를 알아내는 예제
Ex)
- #include <iostream>
- using namespace std;
- int main() {
- // your code goes here
- int num[5] = {2, 22, 56, 24, 7};
- cout << "배열 num이 시작되는 주소 num = " << num << endl;
- cout << "배열 num이 시작되는 주소 &num[0] = " << &num[0] << endl;
- return 0;
- }
배열 num이 시작되는 주소 num = 0xbfbc0d1c
배열 num이 시작되는 주소 &num[0] = 0xbfbc0d1c
배열의 첫 번째 원소의 주소인 &num[0]와 배열의 이름인 num가 저장하고 있는 값이 똑같다는 것을 알 수 있다.
※배열의 이름으로 원소들의 주소를 알아낸다.
- #include <iostream>
- using namespace std;
- int main() {
- // your code goes here
- int num[5] = {34, 23, 63, 32, 86};
- cout << "num[0]의 주소 = " << &num[0] << endl;
- cout << "num의 주소 = " << num << endl;
- cout << "num[1]의 주소 = " << &num[1] << endl;
- cout << "num+1의 주소 = " << num+1 << endl;
- return 0;
- }
결과
num[0]의 주소 = 0xbfbddfcc
num의 주소 = 0xbfbddfcc
num[1]의 주소 = 0xbfbddfd0
num+1의 주소 = 0xbfbddfd0
실행결과를 보면 &num[0]와 num가 같고
&num[1]과 num+1이 같다는 것을 알 수 있다.
※배열의 이름으로 원소들의 값을 알아낸다.
*num //배열의 첫 번째 원소의 값
*(num+1) //배열의 두 번째 원소의 값
*(num+2) //배열의 세 번째 원소의 값
예제)
- #include <iostream>
- using namespace std;
- int main() {
- // your code goes here
- int num[5] = {34, 23, 63, 32, 86};
- cout << "num[0]의 값 = " << num[0] << endl;
- cout << "*num의 값 = " << *num << endl;
- cout << "num[1]의 값 = " << num[1] << endl;
- cout << "*(num+1)의 값 = " << *(num+1) << endl;
- return 0;
- }
결과
num[0]의 값 = 34
*num의 값 = 34
num[1]의 값 = 23
*(num+1)의 값 = 23
반응형
'IT > C Language' 카테고리의 다른 글
string 문자열 사용 (0) | 2014.12.19 |
---|---|
값, 주소에 의한 배열 전달 (0) | 2014.12.19 |
참조의 의한 전달2 (call by reference) (0) | 2014.12.19 |
함수에 자료 전달 방법 (0) | 2014.12.19 |
template 함수 (0) | 2014.12.19 |