C/Estruturas: Diferenzas entre revisións

Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
→‎Traballar con estruturas: Amplío con como se accede aos distintos datos dunha estrutura da que se ten o punteiro á mesma
Gallaecio (conversa | contribucións)
Revisión inicial, continuará...
Liña 1:
{{Navegador|Cadeas de caracteres|Conversións de tipoUnións}}
 
{| align="right" style="margin-left: 1em;"
Unha matriz está formada por un conxunto de datos en memoria consecutiva. Nunha matriz, os elementos da matriz son todos do mesmo tipo de dato. Unha estrutura cumpre con esta definición de matriz, salvo que os elementos da estrutura poden ser de distinto tipo de dato.
| __TOC__
|} <!-- Isto sitúa o índice á dereita -->
 
Unha estrutura é un tipo de variable que contén á súa vez varios elementos que poden ser de distintos tipos.
==Declaración de estruturas==
 
Para utilizar as estruturas, primeiro hai que declarar un tipo de estrutura. Nesta declaración establécense uns tipos de datos concretos cos seus identificadores, e os tipos poden ser tanto [[{{BASEPAGENAME}}/Tipos de datos fundamentais|fundamentais]] coma [[{{BASEPAGENAME}}#Tipos de datos derivados|derivados]] ─é dicir, pode haber estruturas ou matrices dentro dunha estrutura─. A continuación decláranse variables para as que o tipo de dato será unha estrutura previamente definida. A sintaxe fundamental sería a seguinte:
==Definición==
Para utilizar as estruturas, primeiro hai que definir unha. A definición dunha estrutura consiste en asignarlle un identificador a un tipo de estrutura, que estará formada por unha serie de variables internas que se declaran dentro da definición da estrutura. A sintaxe fundamental sería a seguinte:
<source lang=c>
// Definición da estrutura:
struct identificador_da_estruturaidentificador{
// Declaración de variables internas da estrutura.
{
...datos que conforman a estrutura co seu tipo e identificador...
}
</source>
 
Unha vez definida unha estrutura, pódense declarar variables dese tipo. Esta sería a sintaxe fundamental da declaración dunha variable do tipo dunha estrutura previamente definida:
<source lang=c>
// Declaración de variables do tipo da estrutura:
struct identificador variable;
struct identificador_da_estrutura variable1, variable2, ...;
</source>
 
Liña 29 ⟶ 35:
struct t_data data_inicial, data_final;
</source>
 
Xa se dixo que pode haber unha matriz declarada dentro dunha estrutura. Pero cómpre salientar que tamén se pode declarar unha matriz de tipo estrutura. Vexamos un exemplo partindo da estrutura definida no exemplo anterior:
<source lang=c>
struct t_data datas[66];
</source>
 
E, se por exemplo, quixésemos facer referencia a un dato dunha cela da matriz de estruturas, poderiamos proceder do seguinte xeito:
<source lang=c>
datas[12].dia;
</source>
 
Neste caso, estamos facendo referencia ao día da 13ª data.
 
==Traballar con estruturas==
Para traballar individualmente cun dos datos dunha estrutura, utilízase o identificador da variableestrutura e mailo nomeidentificador da súa variable interna á que se quere dofacer datoreferencia, separados por un punto. A sintaxe fundamental sería:
<source lang=c>
estrutura.variable_interna
variable.dato
</source>
 
Liña 57 ⟶ 51:
Ás veces non se vai contar co identificador da estrutura con cuxos datos imos traballar, senón que só disporemos dun punteiro a dita estrutura. Neste caso, para facer referencia a un dos datos da estrutura, farase o seguinte:
<source lang=c>
punteiro -> dato
</source>
 
Liña 67 ⟶ 61:
 
Dentro dunha estrutura pódese meter calquera tipo de dato. Podemos meter calquera dos datos fundamentais, pero tamén podemos meter, por exemplo, matrices, punteiros e mesmo outras estruturas. De aí a súa versatilidade e a importancia de coñecer a súa existencia e comprender o seu funcionamento. Ademais, pode que comprender o funcionamento das estruturas facilite posteriormente a comprensión do funcionamento das clases de [[C++]].
 
==Véxase tamén==
===Apéndice===
*[[{{BASEPAGENAME}}/Funcións para traballar con estruturas|Funcións para traballar con estruturas]].
 
 
{{Navegador|Cadeas de caracteres|Conversións de tipoUnións}}
 
<!-- Categorías: -->
[[Categoría:C ─ Tipos de datosVariables|Estruturas]]