Computer >> Máy Tính >  >> Lập trình >> C ++

Phân rã mảng trong C / C ++ là gì?


Mảng và con trỏ hoạt động khá giống nhau trong C / C ++. Nhưng có một số khác biệt nhỏ. Ví dụ, toán tử sizeof hoạt động khá khác nhau trên cả hai. Khi bạn chuyển đổi một mảng trong một con trỏ,

Ví dụ

#include<iostream>

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

Đầu ra

Điều này cho kết quả -

1

Toán tử sizeof trên con trỏ thực sự cung cấp kích thước của con trỏ chứ không phải của mảng. Sự mất khả năng này của một con trỏ được gọi là "phân rã".