Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 dos elementos da matriz.
Sintaxe
declaration:
declaration-specifiers
init-declarator-list
optar por;
init-declarator-list:
init-declarator
init-declarator-list
,
init-declarator
init-declarator:
declarator
declarator
=
initializer
declarator:
pointer
opte pordirect-declarator
direct-declarator:
direct-declarator
[
constant-expression
optar por]
Por constant-expression ser opcional, a sintaxe tem duas formas:
O primeiro formulário define uma variável de matriz. O
constant-expressionargumento entre colchetes especifica o número de elementos na matriz. Oconstant-expression, se presente, deve ter tipo integral e um valor maior que zero. Cada elemento tem o tipo dado 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. Omite o
constant-expressionargumento entre parênteses, mas não entre parênteses. Você pode usar este formulário somente se tiver inicializado anteriormente a matriz, declarado como um parâmetro ou declarado como uma referência a uma matriz explicitamente definida em outro lugar do programa.
Em ambas as formas, 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 matriz em si.
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 parênteses 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 explicitamente definida em outro lugar do programa.
Você pode definir matrizes de ponteiros para vários tipos de objetos usando declaradores complexos, conforme descrito em Interpretando declaradores mais complexos.
As matrizes são armazenadas por linha. Por exemplo, a matriz a seguir 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 Postfix.
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. Esta 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 para char. A própria definição 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.
END Específico da Microsoft