본문 바로가기
IT/C Language

다차원 배열 초기화 / 배열의 이름

by Jang HyunWoong 2014. 12. 19.

※ 배열을 선언하면서 초기화

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)

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int num[5] = {2, 22, 56, 24, 7};
  7.  
  8. cout << "배열 num이 시작되는 주소 num = " << num << endl;
  9. cout << "배열 num이 시작되는 주소 &num[0] = " << &num[0] << endl;
  10.  
  11. return 0;
  12. }

 

배열 num이 시작되는 주소 num = 0xbfbc0d1c
배열 num이 시작되는 주소 &num[0] = 0xbfbc0d1c

 

배열의 첫 번째 원소의 주소인 &num[0]와 배열의 이름인 num가 저장하고 있는 값이 똑같다는 것을 알 수 있다. 

 

배열의 이름으로 원소들의 주소를 알아낸다. 

 

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int num[5] = {34, 23, 63, 32, 86};
  7.  
  8. cout << "num[0]의 주소 = " << &num[0] << endl;
  9. cout << "num의 주소 = " << num << endl;
  10.  
  11. cout << "num[1]의 주소 = " << &num[1] << endl;
  12. cout << "num+1의 주소 = " << num+1 << endl;
  13. return 0;
  14. }

결과

num[0]의 주소 = 0xbfbddfcc
num의 주소 = 0xbfbddfcc
num[1]의 주소 = 0xbfbddfd0
num+1의 주소 = 0xbfbddfd0

 

실행결과를 보면 &num[0]와 num가 같고

&num[1]과 num+1이 같다는 것을 알 수 있다. 

 

※배열의 이름으로 원소들의 값을 알아낸다. 

*num  //배열의 첫 번째 원소의 값

*(num+1)  //배열의 두 번째 원소의 값

*(num+2)  //배열의 세 번째 원소의 값

 

예제)

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int num[5] = {34, 23, 63, 32, 86};
  7.  
  8. cout << "num[0]의 값 = " << num[0] << endl;
  9. cout << "*num의 값 = " << *num << endl;
  10.  
  11. cout << "num[1]의 값 = " << num[1] << endl;
  12. cout << "*(num+1)의 값 = " << *(num+1) << endl;
  13. return 0;
  14. }

결과

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