Tutorial Avançado da Linguagem C - Array da Linguagem C (4): Array Multidimensional
1. O ambiente de compilação deste artigo
O ambiente de compilação deste artigo usa um ambiente de desenvolvimento integrado: Visual Studio 2019
O link para o site oficial do Visual Studio 2019 é o seguinte
Link do site oficial do Visual Studio 2019
Os recursos do ambiente de desenvolvimento integrado do Visual Studio 2019 são
- O Visual Studio 2019 instala o serviço de colaboração de código Live Share por padrão.
- Nova janela de boas-vindas para ajudar os usuários a escrever código rapidamente, funcionalidade de pesquisa aprimorada, melhorias gerais de desempenho.
- Ajuda do Visual Studio IntelliCode AI.
- Melhor virtualização Python e suporte Conda.
- E suporte para projetos .NET Core 3.0, incluindo WinForms e WPF, etc.
2. Declaração de matriz bidimensional
Uma matriz bidimensional pode ser declarada da seguinte forma
float carrots[25][50];
- Esta linha de instrução declara uma matriz cenouras, que contém 25 linhas de 50 elementos de ponto flutuante.
- Observe que cada dimensão é incluída em seus próprios colchetes.
Da mesma forma, outra matriz bidimensional de números de ponto flutuante pode ser declarada com a seguinte instrução
float numbers[3][5];
Tal como acontece com as hortaliças do campo, é conveniente ter essas matrizes dispostas em um retângulo. Organizando esta matriz em 3 linhas e 5 colunas,
elas são realmente armazenadas na memória na ordem das linhas.
Como mostrado abaixo
-
Como a matriz de 3 linhas e 5 colunas de elementos é organizada na memória
-
É fácil ver que o índice mais à direita muda mais rapidamente. Conceitualmente, um índice à esquerda seleciona uma linha e um índice à direita seleciona um elemento nessa linha.
-
O diagrama acima ilustra como pensar em uma matriz bidimensional como uma matriz unidimensional, onde cada elemento é em si uma matriz unidimensional.
-
A matriz numérica pode ser considerada como uma matriz unidimensional de 3 elementos, cada elemento na matriz contém 5 elementos do tipo float.
-
Os 5 elementos flutuantes da primeira linha estão localizados no endereço de memória marcado como números[0], os 5 elementos flutuantes da segunda linha estão localizados em números[1] e os 5 elementos da última linha estão localizados em números[2 ].
-
Obviamente, a quantidade de memória alocada para cada elemento depende do tipo de variáveis que o array contém.
-
Arrays do tipo double requerem mais memória do que arrays do tipo float ou int.
A figura abaixo ilustra
numbers[4][10]
como o array é armazenado, o array possui 4 linhas de 10 elementos do tipo float
- Como o tipo do elemento do array é float, ele ocupa 4 bytes na máquina, e a memória total ocupada por esse array é 4X10X4 bytes, ou seja, 160 bytes.
3. Declaração de matriz tridimensional
Arrays tridimensionais são uma extensão de arrays bidimensionais:
double beans[4] [10] [20]; // 4 fields, each with 10 rows of 20 beans
- A matriz declarada por esta instrução tem 800 elementos, que podem ser considerados como armazenando a saída de plantas de feijão.Existem três campos de plantas de feijão
, e cada campo contém 10 linhas e 20 colunas de plantas. - Matrizes multidimensionais arbitrárias podem ser definidas conforme desejado.
4. Resultados da compilação do programa de declaração de matriz
O resultado da compilação do programa de declaração de matriz é o seguinte
已启动重新生成…
1>------ 已启动全部重新生成: 项目: 5.4-多维数组, 配置: Debug Win32 ------
1>Main.c
1>E:\Document\2-programmLanguageExper\C\C语言入门经典\C语言入门经典\5.4-多维数组\Main.c(10,8): warning C4101: “carrots”: 未引用的局部变量
1>E:\Document\2-programmLanguageExper\C\C语言入门经典\C语言入门经典\5.4-多维数组\Main.c(11,8): warning C4101: “numbers”: 未引用的局部变量
1>E:\Document\2-programmLanguageExper\C\C语言入门经典\C语言入门经典\5.4-多维数组\Main.c(14,9): warning C4101: “beans”: 未引用的局部变量
1>5.4-多维数组.vcxproj -> E:\Document\2-programmLanguageExper\C\C语言入门经典\C语言入门经典\Debug\5.4-多维数组.exe
1>已完成生成项目“5.4-多维数组.vcxproj”的操作。
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
O resultado da execução do programa compilado é o seguinte
Cinco, o programa completo
O programa completo para este artigo é o seguinte
5.1 Programa de arquivo Main.h
#ifndef MAIN_H
#define MAIN_H
#include <stdio.h>
#include <stdlib.h>
#endif
5.2 Programa de arquivo Main.c
#define _CRT_SECURE_NO_WARNINGS
#include "Main.h"
int main()
{
system("color 3E");
// 二维数组的声明
float carrots[25][50];
float numbers[3][5];
// 三维数组的声明
double beans[4][10][20]; // 4 fields, each with 10 rows of 20 beans
system("pause");
return 0;
}
6. Resumo
Este artigo apresenta principalmente a maneira de declarar matrizes multidimensionais de matrizes na programação avançada da linguagem C.
Introduzido o método de declaração de matriz bidimensional.
Introduzido o método de declaração de matriz bidimensional.
Este artigo termina aqui.
- Espero que a matriz multidimensional da matriz de linguagem C neste artigo.
- pode ajudá-lo.