As matrizes escalares multidimensionais são usadas freqüentemente em D, mas são fornecidas para compatibilidade com ANSI-C e para observar e acessar estruturas de dados do sistema operacional, criadas por meio desse recurso em C. Uma matriz multidimensional é declarada como uma série consecutiva de tamanhos de matriz escalar entre colchetes [ ] seguindo o tipo base. Por exemplo, para declarar uma matriz retangular bidimensional de tamanho fixo de inteiros com dimensões de 12 linhas por 34 colunas, você escreveria a declaração:
int a[12][34];
Uma matriz escalar multidimensional é acessada por meio de uma notação semelhante. Por exemplo, para acessar o valor armazenado na linha 0 coluna 1, você escreveria a expressão de D:
a[0][1]
Os locais de armazenamento de valores de matriz escalar multidimensional são calculados pela multiplicação do número de linhas pelo número total de colunas declaradas e, em seguida, pela adição do número de colunas.
Você deve ter cuidado para não confundir a sintaxe de matriz multidimensional com a sintaxe de D de acessos de matriz associativa (ou seja, a[0][1] não é o mesmo que a[0, 1]). Se você usar uma tupla incompatível com uma matriz associativa ou tentar acessar uma matriz associativa de uma matriz escalar, o compilador de D informará uma mensagem de erro apropriada e recusará a compilação do seu programa.