Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C/C++에서 배열 붕괴란 무엇입니까?


배열과 포인터는 C/C++에서 매우 유사하게 작동합니다. 그러나 약간의 미묘한 차이가 있습니다. 예를 들어, sizeof 연산자는 둘에서 상당히 다르게 작동합니다. 포인터의 배열을 변환할 때

예시

#include<iostream>

int main() {
   const int a[] = { 2, 3, 5, 7, 11 };
   const int* p = a;
   std::cout << ( sizeof(p) != sizeof(a) );
}

출력

이것은 출력을 제공합니다 -

1

포인터의 sizeof 연산자는 실제로 배열의 크기가 아닌 포인터의 크기를 제공합니다. 포인터의 이러한 능력 상실을 "감쇠"라고 합니다.