Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

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,


Acceso a miembros de una estructura

Hay dos tipos de operadores que se utilizan para acceder a los miembros de una estructura.

  1. . - Operador miembro
  2. -> - 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


Lenguaje C

  1. C# Hello World:su primer programa en C#
  2. Identificadores y palabras clave de C#
  3. Variables de C# y tipos de datos (primitivos)
  4. Operadores de C#
  5. Operadores C# Bitwise y Bit Shift
  6. Entrada y salida básica de C#
  7. Expresiones, declaraciones y bloques de C# (con ejemplos)
  8. Comentarios de C#
  9. Declaración de cambio de C#
  10. C# ternario (? :) Operador
  11. Declaración de interrupción de C#