Chi tiết bài học Cấu trúc và hàm trong C++

Cấu trúc và hàm trong C++

Trong bài này, bạn sẽ tìm hiểu các ví dụ liên quan trong việc truyền cấu trúc như một đối số cho hàm, và sử dụng chúng trong chương trình của bạn.

Biến cấu trúc có thể được truyền vào hàm và trả về theo cách tương tự như các đối số thông thường khác.

Truyền cấu trúc vào hàm trong C++

Một biến cấu trúc có thể được truyền vào hàm theo cách tương tự như các đối số thông thường khác. Xem ví dụ sau:

Ví dụ 1: Cấu trúc và hàm trong C++

#include <iostream>
using namespace std;

struct Person
{
    char name[50];
    int age;
    float salary;
};

void displayData(Person);   // khai báo hàm

int main()
{
    Person p;

    cout << "Enter Full name: ";
    cin.get(p.name, 50);
    cout << "Enter age: ";
    cin >> p.age;
    cout << "Enter salary: ";
    cin >> p.salary;

    // gọi hàm với đối số là cấu trúc
    displayData(p);

    return 0;
}

void displayData(Person p)
{
    cout << "\nDisplaying Information." << endl;
    cout << "Name: " << p.name << endl;
    cout <<"Age: " << p.age << endl;
    cout << "Salary: " << p.salary;
}

Đầu ra

Enter Full name: Bill Jobs

Enter age: 55

Enter salary: 34233.4

 

Displaying Information.

Name: Bill Jobs

Age: 55

Salary: 34233.4

Trong chương trình này, người dùng được yêu cầu nhập vào name, age và salary của một Person trong hàm main().

Sau đó, biến cấu trúc p được truyền cho hàm bằng cách:

displayData(p);

Kiểu trả về của displayData() là void và một đối số duy nhất kiểu cấu trúc Person được truyền vào.

Sau đó các thành phần của cấu trúc p được hiển thị từ hàm này.

Ví dụ 2: trả về cấu trúc từ hàm trong C++

#include <iostream>
using namespace std;

struct Person {
    char name[50];
    int age;
    float salary;
};

Person getData(Person); 
void displayData(Person); 

int main()
{

    Person p;

    p = getData(p);   
    displayData(p);

    return 0;
}

Person getData(Person p) {

    cout << "Enter Full name: ";
    cin.get(p.name, 50);

    cout << "Enter age: ";
    cin >> p.age;

    cout << "Enter salary: ";
    cin >> p.salary;

    return p;
}

void displayData(Person p)
{
    cout << "\nDisplaying Information." << endl;
    cout << "Name: " << p.name << endl;
    cout <<"Age: " << p.age << endl;
    cout << "Salary: " << p.salary;
}

Đầu ra của chương trình này giống với chương trình trên.

Trong chương trình này, biến cấu trúc p thuộc kiểu cấu trúc Person được định nghĩa trong hàm main().

Biến cấu trúc p được truyền cho hàm getData(), hàm này được dùng để nhận thông tin nhập vào từ người dùng rồi trả lại cho hàm main.

p = getData(p);

Chú ý: Giá trị của toàn bộ thành phần của một biến cấu trúc có thể được gán cho cấu trúc khác sử dụng toán tử gán = nếu cả hai cấu trúc có cùng kiểu. Bạn không cần phải gán từng phần tử riêng biệt.

Sau đó biến cấu trúc p được truyền cho hàm displayData(), và hiển thị lên màn hình.