Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma "declaração de matriz" nomeia a matriz e especifica o tipo de seus elementos. Ele também pode definir o número de elementos na matriz. Uma variável com tipo de matriz é considerada um ponteiro para o tipo de elementos da matriz.
Sintaxe
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]
Como constant-expression é opcional, a sintaxe tem dois formulários:
O primeiro formulário define uma variável de matriz. O
constant-expressionargumento dentro dos colchetes especifica o número de elementos na matriz. Oconstant-expression, se presente, deve ter um tipo integral e um valor maior que zero. Cada elemento tem o tipo fornecido portype-specifier, que pode ser qualquer tipo, excetovoid. Um elemento de matriz não pode ser um tipo de função.O segundo formulário declara uma variável que foi definida em outro lugar. Ele omite o
constant-expressionargumento entre colchetes, mas não os colchetes. Você só poderá usar esse formulário se tiver inicializado anteriormente a matriz, declarado como um parâmetro ou declarado como uma referência a uma matriz definida explicitamente em outro lugar do programa.
Em ambos os formulários, direct-declarator nomeia a variável e pode modificar o tipo da variável. Os colchetes ([ ]) a seguir direct-declarator modificam o declarador para um tipo de matriz.
Os qualificadores de tipo podem aparecer na declaração de um objeto de tipo de matriz, mas os qualificadores se aplicam aos elementos em vez da própria matriz.
Você pode declarar uma matriz de matrizes (uma matriz "multidimensional") seguindo o declarador de matriz com uma lista de expressões constantes entre colchetes neste formulário:
type-specifierdeclarator[constant-expression][constant-expression]...
Cada constant-expression um entre colchetes define o número de elementos em uma determinada dimensão: matrizes bidimensionais têm duas expressões entre colchetes, matrizes tridimensionais têm três e assim por diante. Você pode omitir a primeira expressão constante se tiver inicializado a matriz, declarado como um parâmetro ou declarado como uma referência a uma matriz definida explicitamente em outro lugar do programa.
Você pode definir matrizes de ponteiros para vários tipos de objetos usando declaradores complexos, conforme descrito na interpretação de declaradores mais complexos.
As matrizes são armazenadas por linha. Por exemplo, a seguinte matriz consiste em duas linhas com três colunas cada:
char A[2][3];
As três colunas da primeira linha são armazenadas primeiro, seguidas pelas três colunas da segunda linha. Isso significa que o último subscrito varia mais rapidamente.
Para se referir a um elemento individual de uma matriz, use uma expressão subscrita, conforme descrito em Operadores postfixos.
Exemplos
Estes exemplos ilustram declarações de matriz:
float matrix[10][15];
A matriz bidimensional nomeada matrix tem 150 elementos, cada um com float tipo.
struct {
float x, y;
} complex[100];
Este exemplo é uma declaração de uma matriz de estruturas. Essa matriz tem 100 elementos; cada elemento é uma estrutura que contém dois membros.
extern char *name[];
Esta instrução declara o tipo e o nome de uma matriz de ponteiros como char. A definição real de name ocorre em outro lugar.
Específico da Microsoft
O tipo de inteiro necessário para manter o tamanho máximo de uma matriz é o tamanho de size_t.
Fim da seção específica da Microsoft