그냥 게임개발자
배열과 포인터 Array to pointer decay 본문
배열의 이름 = 주소값이라는 소리를 어디선가 들어볼 수 있을 것이다.
이것을 Array to Pointer decay라고 한다.
int a[N]라는 N개의 크기를 가진 변수가 있다.
int *c = a;
이렇게 담을 수 있다?
int[]와 int는 서로 다른 타입이다...
근데 담을 수 있다.
???
ㅇㅇ 담을 수 있어요
그래서 Array to Pointer decay라는 것이다.
포인터는 배열의 이름을 담을 수 있다...!
어떠한 Type[N]이 Type*로 담을 수 있다는 것이다.
이렇게 담을 때
int* c = a;일 때! a의 크기는 decay! 크기가 부식이 된다는 것이다!
그리고 a는 배열의 첫번째 주소가 바인딩이 된다.
이게 Array to Pointer decay라는 현상이다.
포인터의 배열을 담게 되면 크기는 사라지고 주소가 바인딩이 되어 할당이 된다.
#include <iostream>
using namespace std;
int a[3] = {1, 2, 3};
int main() {
int *c = a; // Array to pointer decay
cout << c << '\n'; // 배열의 첫번 째 주소
cout << &a[0] << '\n'; // 배열의 첫번 째 주소
cout << c + 1 << '\n'; // 배열의 두번 째 주소
cout << &a[1] << '\n'; // 배열의 두번 째 주소
return 0;
}
이런식으로 더하기 연산도 가능하다.
하지만 vector안됨
배열만 가능
'내 개인적인 공부 > 알고리즘' 카테고리의 다른 글
그래프 이론 기초(2) - indegree, outdegree, 가중치 (0) | 2024.04.21 |
---|---|
그래프이론기초(1) - 정점, 간선 (0) | 2024.04.21 |
암시적 형변환 (0) | 2024.04.04 |
반복문을 통한 순열 (0) | 2024.04.04 |
조합(Combination) (1) | 2024.04.02 |