estructura C
Estructura C
En este tutorial, aprenderá acerca de los tipos de estructura en Programación C con la ayuda de ejemplos.
En programación C, una estructura (o estructura) es una colección de variables (pueden ser de diferentes tipos) bajo un solo nombre.
Definir estructuras
Antes de que pueda crear variables de estructura, debe definir su tipo de datos. Para definir una estructura, el struct
se utiliza la palabra clave.
Sintaxis de estructura
struct structureName {
dataType member1;
dataType member2;
...
};
Por ejemplo,
struct Person {
char name[50];
int citNo;
float salary;
};
Aquí, un tipo derivado struct Person
se define. Ahora, puede crear variables de este tipo.
Crear variables de estructura
Cuando un struct
se declara el tipo, no se asigna almacenamiento ni memoria. Para asignar memoria de un tipo de estructura determinado y trabajar con ella, necesitamos crear variables.
Así es como creamos variables de estructura:
struct Person {
// code
};
int main() {
struct Person person1, person2, p[20];
return 0;
}
Otra forma de crear un struct
variable es:
struct Person {
// code
} person1, person2, p[20];
En ambos casos,
- persona1 y persona2 son
struct Person
variables - p[] es un
struct Person
matriz de tamaño 20.
Acceso a miembros de una estructura
Hay dos tipos de operadores que se utilizan para acceder a los miembros de una estructura.
.
- Operador miembro->
- Operador de puntero de estructura (se discutirá en el próximo tutorial)
Supongamos que desea acceder al salario de persona2 . Así es como puedes hacerlo.
person2.salary
Ejemplo 1:estructuras C++
#include <stdio.h>
#include <string.h>
// create struct with person1 variable
struct Person {
char name[50];
int citNo;
float salary;
} person1;
int main() {
// assign value to name of person1
strcpy(person1.name, "George Orwell");
// assign values to other person1 variables
person1.citNo = 1984;
person1. salary = 2500;
// print struct variables
printf("Name: %s\n", person1.name);
printf("Citizenship No.: %d\n", person1.citNo);
printf("Salary: %.2f", person1.salary);
return 0;
}
Salida
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
En este programa, hemos creado un struct
llamado Person
. También hemos creado una variable de Person
llamado persona1 .
En main()
, hemos asignado valores a las variables definidas en Person
para la persona1 objeto.
strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1. salary = 2500;
Note que hemos usado strcpy()
función para asignar el valor a person1.name .
Esto se debe a que nombre es un char
matriz (cadena C) y no podemos usar el operador de asignación =
con él después de que hayamos declarado la cadena.
Finalmente, imprimimos los datos de persona1 .
Palabra clave typedef
Usamos el typedef
palabra clave para crear un nombre de alias para los tipos de datos. Se usa comúnmente con estructuras para simplificar la sintaxis de declarar variables.
Por ejemplo, veamos el siguiente código:
struct Distance{
int feet;
float inch;
};
int main() {
struct Distance d1, d2;
}
Podemos usar typedef
para escribir un código equivalente con una sintaxis simplificada:
typedef struct Distance {
int feet;
float inch;
} distances;
int main() {
distances d1, d2;
}
Ejemplo 2:C++ typedef
#include <stdio.h>
#include <string.h>
// struct with typedef person
typedef struct Person {
char name[50];
int citNo;
float salary;
} person;
int main() {
// create Person variable
person p1;
// assign value to name of p1
strcpy(p1.name, "George Orwell");
// assign values to other p1 variables
p1.citNo = 1984;
p1. salary = 2500;
// print struct variables
printf("Name: %s\n", p1.name);
printf("Citizenship No.: %d\n", p1.citNo);
printf("Salary: %.2f", p1.salary);
return 0;
}
Salida
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
Aquí, hemos usado typedef
con el Person
estructura para crear un alias person
.
// struct with typedef person
typedef struct Person {
// code
} person;
Ahora, simplemente podemos declarar un Person
variable usando el person
alias:
// equivalent to struct Person p1
person p1;
Estructuras anidadas
Puede crear estructuras dentro de una estructura en programación C. Por ejemplo,
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integers;
} num1, num2;
Supongamos que desea configurar imag de num2 variable a 11 . Así es como puedes hacerlo:
num2.comp.imag = 11;
Ejemplo 3:estructuras anidadas de C++
#include <stdio.h>
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integer;
} num1;
int main() {
// initialize complex variables
num1.comp.imag = 11;
num1.comp.real = 5.25;
// initialize number variable
num1.integer = 6;
// print struct variables
printf("Imaginary Part: %d\n", num1.comp.imag);
printf("Real Part: %.2f\n", num1.comp.real);
printf("Integer: %d", num1.integer);
return 0;
}
Salida
Imaginary Part: 11 Real Part: 5.25 Integer: 6
¿Por qué estructuras en C?
Suponga que desea almacenar información sobre una persona:su nombre, número de ciudadanía y salario. Puedes crear diferentes variables nombre , citNo y salario para almacenar esta información.
¿Qué sucede si necesita almacenar información de más de una persona? Ahora, necesitas crear diferentes variables para cada información por persona:name1 , citNo1 , salario1 , nombre2 , citNo2 , salario2 , etc.
Un mejor enfoque sería tener una colección de toda la información relacionada bajo un solo nombre Person
estructura y utilícelo para cada persona.
Más sobre la estructura
- Estructuras y punteros
- Pasar estructuras a una función
Lenguaje C
- C# Hello World:su primer programa en C#
- Identificadores y palabras clave de C#
- Variables de C# y tipos de datos (primitivos)
- Operadores de C#
- Operadores C# Bitwise y Bit Shift
- Entrada y salida básica de C#
- Expresiones, declaraciones y bloques de C# (con ejemplos)
- Comentarios de C#
- Declaración de cambio de C#
- C# ternario (? :) Operador
- Declaración de interrupción de C#