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).