새로새록

[c++]배열과 벡터 몇가지 본문

소프트웨어융합/경희대 c++ 과제

[c++]배열과 벡터 몇가지

류지나 2020. 7. 18. 03:52

-배열 변수 주소 = 배열의 첫 번째 요소의 주소다.

array+0 = &array[0]

array+1=&array[1]

포인터정의시 array = p로 쉽게 표현가능하다

int * p;
p = &array[0]; //p=array 와같다.

이때 값을 출력하고 싶으면 cout<<*p;를 하고, //array, *&array, *&*&array

주소출력은 cout<<p; //cout<<&array; 로 접근시, 4바이트씩 출력값에 차이나는 걸 볼 수 있고

 

-2차원 배열의 크기

for(i=0, i<sizeof(array); i++) 이용하면 산출값이 더 커지는데

sizeof 연산자를 사용해보면 배열이 차지하는 전체 공간이 출력됩니다. 따라서 요소의 크기로 나눠줘야한다.

for(i=0, i<sizeof(array)/sizeof(int); i++) //sizeof(int)=4

// 2차원 배열의 가로 크기 = 가로 한 줄의 크기를 요소의 크기로 나눠줌

// 차원 배열의 세로 크기 = 배열이 차지하는 전체 공간을 가로 한 줄의 크기로 나눠줌

 

-메모리해제: 벡터의 경우 동적할당된 배열과 비슷하게 

for (int i = 0; i < n; i++)

    {arr[i].clear(); } //가로 해제

arr.clear(); //세로해제