Puntero de estructura : se define como el puntero que apunta a la dirección del bloque de memoria que almacena una estructura que se conoce como puntero de estructura. A continuación se muestra un ejemplo de lo mismo:
Ejemplo:
struct point { int value; }; // Driver Code int main() { struct point s; struct point *ptr = &s; return 0; }
En el código anterior, s es una instancia de struct point y ptr es el puntero de struct porque almacena la dirección de struct point.
A continuación se muestra el programa para ilustrar los conceptos anteriores:
C
// C program to illustrate the // structure pointer #include <stdio.h> // Structure declaration for // vertices struct point { int x; int y; }; // Structure declaration for // rectangle struct rect { // An object left is declared // with 'point' struct point left; // An object right is declared // with 'point' struct point right; }; // Function to calculate area of // the given rectangle void areaOfRectangle(struct rect r) { // Find the area of the rectangle // using variables of point // structure where variables of // point structure is accessed // by left and right objects int area = (r.right.x - r.left.x) * (r.right.y - r.left.y); // Print the area printf("%d", area); } // Driver Code int main() { // Initialize variable 'r' // with vertices of rectangle struct rect r = { { 0, 0 }, { 1, 1 } }; // Function Call areaOfRectangle(r); return 0; }
C++
// C++ program to illustrate the // structure pointer #include <iostream> #include <stdio.h> using namespace std; // Structure declaration for // vertices struct point { int x; int y; }; // Structure declaration for // rectangle struct rect { // An object left is declared // with 'point' struct point left; // An object right is declared // with 'point' struct point right; }; // Function to calculate area of // the given rectangle void areaOfRectangle(struct rect r) { // Find the area of the rectangle // using variables of point // structure where variables of // point structure is accessed // by left and right objects int area = (r.right.x - r.left.x) * (r.right.y - r.left.y); // Print the area cout << area; } // Driver Code int main() { // Initialize variable 'r' // with vertices of rectangle struct rect r = { { 0, 0 }, { 1, 1 } }; // Function Call areaOfRectangle(r); return 0; }
Producción:
1
Publicación traducida automáticamente
Artículo escrito por pawanchoure y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA