📅  最后修改于: 2023-12-03 15:08:51.791000             🧑  作者: Mango
在C/C++中,结构是一种用户自定义的数据类型,它可以包含多个不同类型的成员变量。结构可以用于将多个相关的变量组合在一起以便于管理和传递。在本文中,我们将讨论如何在C/C++中的函数传递结构或从中返回结构。
在C中,结构是一种用户自定义的数据类型。我们可以通过定义一个结构来表示一组相关的数据。
struct student {
char name[20];
int age;
float marks;
};
在定义了一个结构后,可以使用它来声明结构变量并操作它:
struct student s1;
s1.age = 20;
strcpy(s1.name, "John");
s1.marks = 85.5;
要在函数中传递结构,我们需要将整个结构传递给函数,或者将结构的指针传递给函数。下面是一个函数,它使用结构作为参数:
void print(struct student s) {
printf("Name: %s\n", s.name);
printf("Age: %d\n", s.age);
printf("Marks: %.2f\n", s.marks);
}
这个函数将一个学生的结构作为参数,并打印出结构中的数据。你可以像下面这样调用这个函数:
struct student s1 = {"John", 20, 85.5};
print(s1);
这将输出:
Name: John
Age: 20
Marks: 85.50
在C中,我们也可以从函数返回结构。为了返回一个结构,我们需要将结构作为函数的返回值。
struct student getStudent() {
struct student s = {"John", 20, 85.5};
return s;
}
这个函数将返回一个表示学生的结构。你可以像下面这样调用这个函数:
struct student s1 = getStudent();
printf("Name: %s\n", s1.name);
printf("Age: %d\n", s1.age);
printf("Marks: %.2f\n", s1.marks);
这将输出:
Name: John
Age: 20
Marks: 85.50
在C++中,结构和C中的结构非常相似,但是它们可以包含方法(也称为函数)。同样,我们可以使用结构来表示一组相关的数据。
struct student {
char name[20];
int age;
float marks;
void print() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
cout << "Marks: " << fixed << setprecision(2) << marks << endl;
}
};
在定义了一个结构后,我们可以使用它来声明结构变量并操作它,就像在C中一样:
student s1;
s1.age = 20;
strcpy(s1.name, "John");
s1.marks = 85.5;
要在函数中传递结构,我们可以使用结构的引用或指针作为函数参数。下面是一个函数,它使用结构作为引用参数:
void print(student& s) {
cout << "Name: " << s.name << endl;
cout << "Age: " << s.age << endl;
cout << "Marks: " << fixed << setprecision(2) << s.marks << endl;
}
这个函数将一个学生的结构作为引用参数,并打印出结构中的数据。你可以像下面这样调用这个函数:
student s1 = {"John", 20, 85.5};
print(s1);
这将输出:
Name: John
Age: 20
Marks: 85.50
我们也可以使用结构的指针作为函数参数。下面是一个函数,它使用结构指针作为参数:
void print(student* s) {
cout << "Name: " << s->name << endl;
cout << "Age: " << s->age << endl;
cout << "Marks: " << fixed << setprecision(2) << s->marks << endl;
}
这个函数将一个学生的结构指针作为参数,并打印出结构中的数据。你可以像下面这样调用这个函数:
student s1 = {"John", 20, 85.5};
print(&s1);
这将输出:
Name: John
Age: 20
Marks: 85.50
在C++中,我们也可以从函数中返回结构。为了从函数中返回结构,我们可以将结构作为函数的返回值。
student getStudent() {
student s = {"John", 20, 85.5};
return s;
}
这个函数将返回一个表示学生的结构。你可以像下面这样调用这个函数:
student s1 = getStudent();
s1.print();
这将输出:
Name: John
Age: 20
Marks: 85.50