Khai báo con trỏ struct: có hai cách khai báo
struct product{ int weight; float price; }*apples; | struct product{ int weight; float price; }; product* apples; |
struct product{ int weight; float price; }apples1; … products* apples2; apples2 = &apples1; |
apples2->weight apples2->price | *(apples2.weight) *(apples2.price) |
Bạn cần lưu ý sự khác nhau giữa apples2->weight và *apples2.weight. Trường hợp đầu nó sẽ tương đương với *(apples2.weight) và theo độ ưu tiên của toán tử, dấu () sẽ thực hiện trước tiên, nghĩa là thành viên weight của apples2. Tiếp đó là phép toán *. Điều này có thể hiểu là con trỏ apples2 trỏ vào địa chỉ của biến thành viên weight của apples 2. Trường hợp thứ hai, là giá trị trỏ bởi biến thành viên weight của apples2 (toán tử . có độ ưu tiên cao hơn toán tử *).
struct product{ int weight; float price; }*apples2; …. apples2->weight | struct product{ int *weight; float price; }apples2; … *apples2.weight |
No comments:
Post a Comment