Đây là một tai nạn của cú pháp C mà bạn có thể viết hoặc int *i
hoặc int* i
hoặc thậm chí int * i
. Tất cả chúng được phân tích cú pháp là int (*i)
; IOW, *
bị ràng buộc với người khai báo, không phải là trình chỉ định kiểu. Điều này có nghĩa là trong các tờ khai như
int* i, j;
chỉ được khai báo là một con trỏ; j
được khai báo là int thường xuyên. Nếu bạn muốn khai báo cả trong số họ là con trỏ, bạn sẽ phải viết
lập trình viên
int *i, *j;
Hầu hết C sử dụng T *p
như trái ngược với T* p
, vì a) khai báo trong C là biểu hiện tập trung, không phản đối tập trung, và b) nó phản ánh chặt chẽ hơn cú pháp khai báo.
Ví dụ về ý nghĩa của biểu thức là trung tâm, giả sử bạn có một chuỗi con trỏ tới int và bạn muốn lấy giá trị số nguyên ở phần tử i
. Biểu thức tương ứng với giá trị đó là *a[i]
và loại loại của biểu thức là int
; do đó, việc khai báo mảng là
int *a[N];
Khi bạn thấy cụm từ "khai báo bắt chước sử dụng" liên quan đến lập trình C, điều này có nghĩa là gì.
Nguồn
2010-09-22 15:34:10
bản sao có thể có của [Trong C, tại sao dấu hoa thị trước tên biến, thay vì sau loại?] (Http://stackoverflow.com/questions/398395/), [Kiểu con trỏ ưa thích của bạn là gì và Tại sao?] (http://stackoverflow.com/questions/377164/) – outis