Una estructura es un tipo de datos definido por el usuario en C/C++. Una estructura crea un tipo de datos que se puede usar para agrupar elementos de tipos posiblemente diferentes en un solo tipo.
¿Cómo pasar la estructura como argumento a las funciones?
El paso de estructura a la función se puede hacer de dos formas:
- Pasando todos los elementos a la función individualmente.
- Pasando toda la estructura a la función.
En este artículo, toda la estructura se pasa a la función. Esto se puede hacer utilizando la llamada por referencia , así como el método de llamada por valor .
Ejemplos 1: uso del método Call By Value
// C++ program to pass structure as an argument // to the functions using Call By Value Method #include <bits/stdc++.h> using namespace std; struct Distance { int kilometer; int meter; }; // accepts distance as its parameters void TotalDistance(Distance d1, Distance d2) { // creating a new instance of the structure Distance d; // assigning value to new instance of structure d.kilometer = d1.kilometer + d2.kilometer + (d1.meter + d2.meter) / 1000; d.meter = (d1.meter + d2.meter) % 1000; cout << "Total distance:"; cout << "kilometer: " << d.kilometer << endl; cout << "meter: " << d.meter << endl; } // Function that initialises the value // and calls TotalDistance function void initializeFunction() { // creating two instances of Distance Distance Distance1, Distance2; // assigning values to structure elements Distance1.kilometer = 10; Distance1.meter = 455; Distance2.kilometer = 9; Distance2.meter = 745; // calling function with (structure) // distance as parameters TotalDistance(Distance1, Distance2); } // Driver code0 int main() { // Calling function to do required task initializeFunction(); return 0; }
Total distance:kilometer: 20 meter: 200
Ejemplos 2: uso del método de llamada por referencia
// C++ program to pass structure as an argument // to the functions using Call By Reference Method #include <bits/stdc++.h> using namespace std; struct number { int n; }; // Accepts structure as an argument // using call by reference method void increment(number& n2) { n2.n++; } void initializeFunction() { number n1; // assigning value to n n1.n = 10; cout << " number before calling " << "increment function:" << n1.n << endl; // calling increment function increment(n1); cout << "number after calling" << " increment function:" << n1.n; } // Driver code int main() { // Calling function to do required task initializeFunction(); return 0; }
number before calling increment function:10 number after calling increment function:11
¿Cómo devolver una estructura de las funciones?
Para devolver una estructura desde una función, el tipo de devolución debe ser solo una estructura.
Ejemplos:
// C++ program to return a structure from // a function using Call By Value Method #include <iostream> #include <stdlib.h> using namespace std; // required structure struct Employee { int Id; string Name; }; // return type of the function is structure Employee data(Employee E) { // Assigning the values to elements E.Id = 45; E.Name = "aman"; // returning structure return (E); } // Driver code int main() { // creating object of Employee Employee Emp; // calling function data to assign value Emp = data(Emp); // display the output cout << "Employee Id: " << Emp.Id; cout << "\nEmployee Name: " << Emp.Name; return 0; }
Employee Id: 45 Employee Name: aman
Publicación traducida automáticamente
Artículo escrito por vinaychopra92vc y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA