09-- estructura

estructura

C lenguaje permite a los usuarios crear una estructura de datos que consiste en una combinación de tipo compuesto de diferentes tipos de datos por sí mismos, se hace referencia a la estructura

La forma general de una declaración del tipo de estructura:

estructura struct {nombre} miembro tabular;

struct Student 
{ 
    int NUM; 
    nombre char [20 es]; 
    Char Sex; 
    int Edad; 
}; 
llaves es un hijo de la estructura contiene, referido a los miembros de la estructura, el num, nombre, sexo, edad descrito anteriormente son es un miembro. 
Cada miembro debe ser el tipo de declaración que 
    el tipo de nombre de miembro;

Los miembros de la columna de la tabla también se hace referencia como "tabla de dominio", cada miembro de un dominio es un cuerpo estructural

 

Definición de la variable tipo de estructura

1, el tipo de estructura de la primera declaración, y después definir los tipos de variables

struct estudiante 
{ 
    int num; 
    char nombre [20 es]; 
    Char sexo; 
    int Edad; 
}; 
 STUDENT1 estructura, Estudiante2; 
nombre del tipo de estructura Estructura nombre de la variable

2, en un comunicado, al mismo tiempo definir una variable de tipo

struct Student 
{ 
    int NUM; 
    nombre char [20 es]; 
    Char Sex; 
    int Edad; 
} STUDENT1, Estudiante2; 
la forma general: 
struct nombre de la estructura 
{ 
    miembros enumeran 
} variable de relojes columna;

3, no especifique el nombre de la definición del tipo de la estructura y la variable de tipo directo

forma general: 
struct 
{ 
    miembros enumeran 
} variable de relojes columna;

Nota: Los miembros del nombre del tipo de estructura puede ser el mismo nombre de variable en el programa, pero no representan el mismo objeto

 

variables de estructura se inicializan y referencias

1, cuando la definición de las variables de estructura se puede inicializar a sus miembros

2, la estructura se puede citar un valor variable miembro, la referencia a:

Miembros variable de estructura

3, si el tipo de miembro estructural que sí tiene una estructura que pertenece a otro tipo, el uso de varios miembros de la operador para encontrar los miembros nivel más bajo de la etapa por etapa, sólo para el rango más bajo o el acceso y la asignación operaciones.

método miembro de Referencia:

(Estudiantes miembros estructura de variables en NUM) student1.num 
student2.birthday.month 
(student2 variable de estructura de cumpleaños del miembro de los miembros de mes)

4, los miembros de la estructura pueden ser cálculo variable de

student2.score = student1.score; (operador de asignación) 
SUM = student2.score + student1.score; (sumador) 
student2.age ++ (de más operación)

5, el mismo tipo de variable de estructura se puede asignar el uno al otro

student2 = STUDENT1

6, la dirección de los miembros de variables se puede referir a la estructura, se puede hacer referencia a la dirección de la variable de estructura

scanf ( "% d", y student2.score); ( valor de entrada student2.score) de 
la printf ( "% D", y Estudiante2); (estructura variable de salida del Estudiante2 dirección de inicio)

Dirección variable de estructura en función de los parámetros principales de la estructura de dirección de transmisión variable

 

Uso matriz de estructuras

Una variable de estructura puede ser almacenada en un conjunto de datos asociados, si hay 10 estudiantes en necesidad de operaciones de datos, obviamente se debe utilizar en una matriz, esto es la matriz de estructuras

Define una matriz de estructuras forma general:

. 1, 
  nombre de la estructura struct 
    {miembros} tabular nombre de la matriz [longitud de la matriz] 
2, 
     declarar una estructura, y luego definir una matriz de estructuras de este tipo: 
      el tipo de nombre de la estructura array [tamaño de la matriz] 
      como: líder persona struct [3]; // estructura líder es un nombre de matriz

Inicialización de una estructura de matriz se define más adelante en la matriz y además:

} = {Columna de la tabla valor inicial;

例如: Persona líder estructura [3] = { "li", 0, "Zhang", 0, "Wang", 0};

 

estructura del puntero

Estructura variable de puntero es un puntero a una estructura, la dirección de inicio de una variable de estructura es un puntero a este variables de estructura.

Si la dirección de inicio de una variable de estructura se almacena en una variable puntero, entonces los puntos variables puntero a las variables de estructura.

Puntero a una estructura de variables

Señalando estructura que apunta a las variables de estructura variable de puntero objeto también puede ser dirigido en la estructura de elemento de matriz.

variables de tipo puntero base deben ser del mismo tipo de variables de estructura.

Por ejemplo: Student struct * pt // pt puede ser dirigida a una variable de tipo struct Student o elementos de la matriz
struct Estudiante 
    { 
        largo NUM; 
        char nombre [50]; 
        Char sexo; 
        una puntuación de flotación; 
    }; 
    struct stu_1 Estudiante; // define una variable de tipo struct stu_1 Estudiante 
    estructura estudiante * P; // definir un tipo de datos variables puntero p estructura de Estudiantes 
    y stu_1 = P; 
    el printf ( "NO:% LD \ nname:% S \ nsex:% C \ NSCore :. 5.lf% \ n-", 
        stu_1.num, stu_1.name, stu_1.sex, stu_1.score); 
                es equivalente a 
    la printf ( "NO:.% LD \ nname:% S \ nsex:% C \ NSCore: 5.lf% \ n-", 
        (* .num P), (P *) .name, (P *) .sex, (p *) .score); 
lenguaje C permite .name (* p) usando p-> nombre de lugar; 
p-> nombre representa una variable de estructura puntos nombrar miembros en p 
'->' dice a punto para el operador 
si una variable de estructura p en la STU, los siguientes tres tipos de uso es equivalente a:
. 1, los miembros Stu (por ejemplo: stu.name) 
2, (P *) nombre del miembro (Tales como: (P *) .name). 
. 3, p-> Nombre de usuario (por ejemplo: p-> nombre)

Puntero a una matriz de estructuras

struct Student stu[3] = {
{10101,"mao",'M',78},
{10103,"li",'F',98},
{10106,"zhang",'M',86},
};

struct Student* p; //定义指向struct Student 结构体变量的指针变量
	printf("学生的全部信息\n");
	for (p = stu; p < stu + 3; p++)
	{
		printf("%5d %-20s %2c %4d\n",p->num,p->name,p->sex,p->age);
	}

Y un puntero a una estructura con las variables de estructura en función del parámetro variable

La estructura de un valor de la variable a otra función, hay tres métodos:

  1. Una variable de estructura de miembro como un parámetro. Por ejemplo: Stu [1] .num como argumentos de la función

  2. Una variable de estructura como argumento.

  3. Apuntando hacia la variable de estructura (o elemento de la matriz) como argumento un puntero a la dirección de las variables de estructura (o elemento de la matriz) se pasa parámetro.

Publicado 16 artículos originales · ganado elogios 2 · Vistas 129

Supongo que te gusta

Origin blog.csdn.net/weixin_42248871/article/details/105258086
Recomendado
Clasificación