2011-08-16 45 views

Trả lời

10

Con trỏ có thể được gán lại, mảng không thể.

const char* ptr = "Hello World!"; 
const char arr[] = "Hello World!"; 

ptr = "Goodbye"; // okay 
arr = "Goodbye"; // illegal 

Ngoài ra, như những người khác đã nói:

sizeof(ptr) == size of a pointer, usually 4 or 8 
sizeof(arr) == number of characters + 1 for null terminator 
+0

+1 Tôi nghĩ đây là câu trả lời phù hợp hơn cho câu hỏi đã cho – Chad

5

Đầu tiên là một con trỏ.
Thứ hai là một mảng.

Kích thước của tất cả các con trỏ trong một hệ thống sẽ giống nhau.
Kích thước của mảng trong khai báo thứ hai giống như kích thước của chuỗi ký tự cộng với \0.

Bạn có thể trỏ con trỏ đầu tiên đến bất kỳ biến nào khác cùng loại.
Bạn không thể gán lại mảng.

2

Đầu tiên là con trỏ: sizeof(myVar) == sizeof(void*). Nó không liên tục, vì vậy bạn có thể sửa đổi nó: myVar++.

Thứ hai là một mảng: sizeof(myVar) == 13.

Các vấn đề liên quan