Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Array decaying (mảng suy biến thành con trỏ) trong C/C++


Mảng và con trỏ hoạt động khá tương tự trong C/C++. Nhưng có khác biệt tinh vi. Ví dụ sizeof hoạt động khác nhau trên hai loại. Khi chuyển mảng thành 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

1

sizeof trên con trỏ cho kích thước con trỏ, không phải mảng. Mất khả năng này gọi là "decay" (suy biến).