Con trỏ tới cấu trúc trong C++

Trong bài này, bạn sẽ tìm hiểu các ví dụ liên quan giúp bạn hiểu cách làm việc với con trỏ để truy xuất dữ liệu trong một cấu trúc.

Một biến con trỏ có thể được tạo ra không chỉ các kiểu cơ sở như (int, float, doube…) mà chúng còn có thể được tạo cho các kiểu người dùng tự định nghĩa như cấu trúc.

Nếu bạn không hiểu con trỏ là gì, hãy đọc ở đây.

Đây là cách bạn có thể tạo con trỏ cho cấu trúc.

#include <iostream>
using namespace std;

struct temp {
    int i;
    float f;
};

int main() {
    temp *ptr;
    return 0;
}

Chương trình sau tạo một con trỏ ptr có kiểu cấu trúc temp.

Ví dụ: Con trỏ tới cấu trúc

#include <iostream>
using namespace std;

struct Distance
{
    int feet;
    float inch;
};

int main()
{
    Distance *ptr, d;

    ptr = &d;
    
    cout << "Enter feet: ";
    cin >> (*ptr).feet;
    cout << "Enter inch: ";
    cin >> (*ptr).inch;
 
    cout << "Displaying information." << endl;
    cout << "Distance = " << (*ptr).feet << " feet " << (*ptr).inch << " inches";

    return 0;
}

Đầu ra

Enter feet: 4

Enter inch: 3.5

Displaying information.

Distance = 4 feet 3.5 inches

Trong chương trình này, một biến con trỏ ptr và biến thông thường d có kiểu cấu trúc Distance được định nghĩa.

Địa chỉ của biến d được lưu vào biến con trỏ, nghĩa là ptr được trỏ tới d. Sau đó, chức năng thành phần của biến d được truy xuất sử dụng con trỏ.

Chú ý: Vì con trỏ ptr trỏ tới biến d trong chương trình này, (*ptr).inchd.inch là hai vị trí hoàn toàn giống nhau. Tương tự, (*ptr).feetd.feet cũng là hai vị trí giống nhau.

Cú pháp để truy xuất chức năng thành phần sử dụng con trỏ hơi phức tạp và có một ký hiệu khác ->, ký hiệu này thường được sử dụng hơn.

ptr->feet tương đương với (*ptr).feet
ptr->inch tương đương với (*ptr).inch

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *