Lenguaje C_0328 estructura_notas: simbolización constante/valor int/enumeración personalizada/recuento de enumeración automática/no se usa con mucha frecuencia

Tabla de contenido

¿Qué es la estructura?

11.2.1 Tipo de estructura

La forma de declarar una estructura.

método uno:

 Método dos:

 Método tres: (común)

Variables de estructura

 Inicialización de variables de estructura

miembro de la estructura

operaciones estructurales

puntero de estructura


¿Qué es la estructura?

Si queremos registrar una serie de datos de objetos abstractos, no queremos definirlos uno por uno, en este momento podemos usar el tipo de estructura del lenguaje C.

Una estructura es un tipo compuesto que puede contener variables miembro de muchos tipos diferentes.

11.2.1 Tipo de estructura

fecha de estructura {

mes entero;

día entero;

año entero;

  • //struct es una palabra clave. Dentro de los corchetes están los miembros de la estructura. 
  • // Cada fecha en el futuro tendrá estos tres miembros.
  • #include ‹stdio.h>
    int main(int arg, char const *argv(])
    {
    struct date {
    int month;
    int day;
    int year;
    };
    struct date today;
    //使用结构类型,建立了today结构变量
    today.month = 07;
    today. day = 31;
    today. year = 2014;
    printf ("Today's date is %i-i-%i.\n"
    today. year, today.month, today. day|
    return 0;
    }
  • Al igual que las variables locales, un tipo de estructura declarado dentro de una función solo se puede usar dentro de la función, pero si se declara externamente, puede ser usado por múltiples funciones. Por lo general, coloque la parte de declaración de estructura fuera de todas las funciones.
  • De manera similar a la enumeración anterior, debe traer la palabra clave struct cuando la use

La forma de declarar una estructura.

método uno:

  1.  Se declara una estructura denominada punto y se crean dos variables p1 y p2.
  2. Se crean dos variables p1 y p2. Los tipos de p1 y p2 son puntos de estructura [p1 y p2 contienen los valores de xey]
  3. A continuación, puedes usar las variables p1 y p2 para hacer algo.
struct point{
int x;
int y;
};
struct point p1,p2;
 
//声明了一个结构名为point,创建了两个变量p1和p2

 Método dos:

  1. //Declaramos una estructura sin nombre y creamos dos variables p1 y p2
  2. //p1 y p2 son estructuras sin nombre con valores x e y
  3. //Cuando solo necesites usar dos variables en este momento, puedes usar este método sin nombre
struct {
int x;
int y;
}p1,p2;
 
//声明了一个结构但没有名字,创建了两个变量p1和p2
//p1和p2都是无名结构,有x和y值
//当你只需要在当下使用两个变量,可以用这种不起名字的方式

 Método tres: (común)

  1.  Se declara una estructura denominada punto y se crean dos variables p1 y p2.
  2. Las variables de la estructura están definidas: p1 y p2 son ambos puntos, con los valores xey dentro.
struct point{
int x;
int y;
}p1,p2;

Variables de estructura

Ejemplo:

fecha de estructura hoy;

hoy.mes=06;

hoy.día=19;

hoy.año=2005;

  • Entonces hay tres tipos int en la variable hoy . La parte declarada fuera de la función declara un nuevo tipo, mientras que la parte declarada dentro de la función define variables de este tipo. Después de la declaración, puede crear múltiples variables diferentes según la plantilla, que contengan día, año, etc.

 Inicialización de variables de estructura

Después de crear una variable de estructura, es una variable local dentro de la función y no tiene valor inicial. Como hemos aprendido del pasado, no asignar un valor inicial generará valores de memoria confusos. Entonces, ¿cómo asignarle un valor inicial?

struct date{     int mes;     int día;     int año;   }; int main() { struct date today = {07,31,2014}; //Una es asignar valores en el orden de declaración struct date thismonth = { .month= 7, .year=2014 };     //Similar a una matriz, no se asigna ningún valor al día y se asigna 0 automáticamente }




 


   

   

miembro de la estructura

  • Los miembros de la estructura son similares a los miembros de la matriz , pero los miembros de la matriz deben tener el mismo tipo, mientras que los miembros de la estructura no.
  • Se accede a los miembros de diferentes maneras: a las matrices se accede mediante corchetes [] y subíndices (números entre corchetes), mientras que a las estructuras se accede a través de puntos (.) y nombres.
  • Tenga en cuenta que lo que aparece en el lado izquierdo de [.] debe ser una variable de estructura (entidad), el tipo de estructura es virtual, lo que simplemente le dice al compilador que existe tal tipo.

    por ejemplo: a[0]=10;

    hoy.día\p1.x 

operaciones estructurales

  • Para acceder a toda la estructura, utilice directamente el nombre de la variable de estructura .
  • La estructura completa se puede asignar, tomar de la dirección o pasar a parámetros de función.
  • Las siguientes dos operaciones no se pueden completar con matrices.
    • día=hoy;El resultado es el mismo;pero! ! ! Las matrices no pueden ser directamente iguales a dos matrices.
    • Si se vuelven a cambiar los valores de día y hoy, son diferentes, indicando que se trata de dos variables diferentes y separadas.
p1=(struct point){5,10};
//(struct point 是强制类型转换,将5,10强制转换为point结构变量)
//相当于p1.x=5, p1.y=10
 
p1=p2;
//相当于p1.x = p2.x, p1.y = p2.y

ejemplo:

#include<stdio.h>
 
struct date{
    int month;
    int day;
    int year;
};
 
int main()
{
    struct date today;
    today = (struct date){07,31,2014};
//给today赋值
    struct date day;
 
    day=today;//数组不能做相等!!!
//让day=today,分别打印
    printf("Today's date is %i-%i-%i.\n",
    today.year,today.month,today.day);
 
    printf("The day's date is %i-%i-%i.\n",
    today.year,today.month,today.day);
}

puntero de estructura

 La esencia de una matriz es un puntero , pero una variable de estructura no lo es, por lo que su nombre no se puede usar como dirección y se debe usar el operador &.

fecha de estructura *pDate = &hoy

 En este momento, se crea un puntero que apunta a la variable de hoy. 

(Desarrollar un buen hábito y utilizar & al tomar direcciones)

Supongo que te gusta

Origin blog.csdn.net/Shmily_as33/article/details/129819182
Recomendado
Clasificación