Saturday, September 11, 2010

Con trỏ struct

Tương ứng với mảng struct, ta cũng có con trỏ trỏ vào struct. Với con trỏ trỏ vào struct, ta có thể tạo ra một mảng struct động.
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;
Tham chiếu: hoàn toàn tương tự như con trỏ trỏ vào kiểu dữ liệu nguyên thủy.
struct product{ int weight;
float price;
}apples1;

products* apples2;
apples2 = &apples1;
Truy cập giá trị của phần tử thành viên: có hai cách truy cập
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

Popular Posts