2011-09-08 31 views

Trả lời

10

arr là một biểu thức đánh giá thành một số int* (đây là phần nổi tiếng 'phân rã thành con trỏ' ure).

&arr là một biểu thức đánh giá thành int (*)[3].

Tên mảng 'phân rã' thành con trỏ đến thành phần đầu tiên của mảng trong tất cả các biểu thức trừ khi chúng là toán hạng cho các toán tử sizeof hoặc &. Đối với hai hoạt động này, các tên mảng giữ lại 'mảng' của chúng (C99 6.3.2.1/3 "Các giá trị, mảng và các hàm thiết kế").

+1

+1: Tôi cũng sẽ chỉ ra rằng, mặc dù của một loại khác nhau, cả hai biểu thức trả về địa chỉ con trỏ tương tự. –

0

Nó không làm việc cho chính xác lý do tương tự như:

int i; 
int* pi = i; // error: no conversion from int to int* 
Các vấn đề liên quan