Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una "declaración de matriz" asigna un nombre a la matriz y especifica el tipo de sus elementos. También puede definir el número de elementos de la matriz. Una variable con tipo de matriz se considera un puntero al tipo de los elementos de matriz.
Sintaxis
declaration:
declaration-specifiers
init-declarator-list
optar;
init-declarator-list:
init-declarator
init-declarator-list
,
init-declarator
init-declarator:
declarator
declarator
=
initializer
declarator:
pointer
optardirect-declarator
direct-declarator:
direct-declarator
[
constant-expression
optar]
Dado que constant-expression es opcional, la sintaxis tiene dos formas:
El primer formulario define una variable de matriz. El
constant-expressionargumento entre corchetes especifica el número de elementos de la matriz. Siconstant-expressionestá presente, debe tener un tipo entero y un valor mayor que cero. Cada elemento tiene el tipo proporcionado portype-specifier, que puede ser cualquier tipo exceptovoid. Un elemento de matriz no puede ser un tipo de función.El segundo formulario declara una variable que se ha definido en otro lugar. Omite el
constant-expressionargumento entre corchetes, pero no los corchetes. Puede usar este formulario solo si ha inicializado previamente la matriz, la ha declarado como parámetro o la ha declarado como referencia a una matriz que se define explícitamente en otro lugar del programa.
En ambos formularios, direct-declarator asigna nombres a la variable y puede modificar el tipo de la variable. Los corchetes ([ ]) siguientes direct-declarator modifican el declarador a un tipo de matriz.
Los calificadores de tipo pueden aparecer en la declaración de un objeto de tipo de matriz, pero los calificadores se aplican a los elementos en lugar de a la propia matriz.
Puede declarar una matriz de matrices (una matriz "multidimensional") siguiendo el declarador de matriz con una lista de expresiones constantes entre corchetes en este formato:
type-specifierdeclarator[constant-expression][constant-expression]...
Cada constant-expression uno de los corchetes define el número de elementos de una dimensión determinada: las matrices bidimensionales tienen dos expresiones entre corchetes, matrices tridimensionales tienen tres, etc. Puede omitir la primera expresión constante si ha inicializado la matriz, la ha declarado como parámetro o la ha declarado como referencia a una matriz definida explícitamente en otro lugar del programa.
Puede definir matrices de punteros a varios tipos de objetos mediante declaradores complejos, como se describe en Interpretación de declaradores más complejos.
Las matrices se almacenan por fila. Por ejemplo, la matriz siguiente consta de dos filas con tres columnas cada una:
char A[2][3];
Las tres columnas de la primera fila se almacenan primero, seguidas de las tres columnas de la segunda fila. Significa que el último subíndice varía más rápidamente.
Para hacer referencia a un elemento individual de una matriz, use una expresión de subíndice, como se describe en Operadores postfijos.
Ejemplos
En estos ejemplos se muestran las declaraciones de matriz:
float matrix[10][15];
La matriz bidimensional denominada matrix tiene 150 elementos, cada uno con float tipo.
struct {
float x, y;
} complex[100];
Este ejemplo es una declaración de una matriz de estructuras. Esta matriz tiene 100 elementos; cada elemento es una estructura que contiene dos miembros.
extern char *name[];
Esta instrucción declara el tipo y el nombre de una matriz de punteros a char. La definición real de name se produce en otro lugar.
Específicos de Microsoft
El tipo de entero necesario para contener el tamaño máximo de una matriz es el tamaño de size_t.
FIN Específico de Microsoft