C 言語上級編 - C 言語配列 (4): 多次元配列
1. 本記事のコンパイル環境
この記事のコンパイル環境は、統合開発環境: Visual Studio 2019 を使用しています。
Visual Studio 2019の公式サイトへのリンクは以下の通り
Visual Studio 2019 公式 Web サイトのリンク
Visual Studio 2019 統合開発環境の特長は、
- Visual Studio 2019 は、既定で Live Share コード コラボレーション サービスをインストールします。
- ユーザーがコードをすばやく記述できるようにする新しいウェルカム ウィンドウ、改善された検索機能、一般的なパフォーマンスの改善。
- Visual Studio IntelliCode AI ヘルプ。
- より優れた Python 仮想化と Conda サポート。
- また、WinForms や WPF などを含む .NET Core 3.0 プロジェクトのサポート。
2. 二次元配列の宣言
2 次元配列は次のように宣言できます。
float carrots[25][50];
- このステートメントの行は、50 の浮動小数点要素の 25 行を含む配列のキャロットを宣言します。
- 各次元はそれぞれの角括弧で囲まれていることに注意してください。
同様に、別の浮動小数点数の 2 次元配列は、次のステートメントで宣言できます。
float numbers[3][5];
畑の野菜と同じように、これらの配列を長方形に並べると便利です。この配列を 3 行 5 列に並べると、
実際には行順にメモリに格納されます。
以下に示すように
-
3 行 5 列の要素の配列がメモリ内でどのように構成されているか
-
右端のインデックスが最も速く変化することが簡単にわかります。概念的には、左側のインデックスは行を選択し、右側のインデックスはその行の要素を選択します。
-
上の図は、2 次元配列を 1 次元配列と考える方法を示しています。ここで、各要素自体が 1 次元配列です。
-
数値配列は、3 つの要素からなる 1 次元配列と見なすことができます。配列の各要素には、float 型の 5 つの要素が含まれます。
-
最初の行の 5 つの float 要素は、numbers[0] とマークされたメモリ アドレスに配置され、2 番目の行の 5 つの float 要素は numbers[1] に配置され、最後の行の 5 つの要素は numbers[2] に配置されます。 ]。
-
もちろん、各要素に割り当てられるメモリの量は、配列に含まれる変数の型によって異なります。
-
double 型の配列は、float 型または int 型の配列より多くのメモリを必要とします。
以下の図は、
numbers[4][10]
配列がどのように格納されるかを示しています。配列には、float 型の 10 個の要素が 4 行あります。
- 配列要素の型が float であるため、マシン上で 4 バイトを占有し、この配列が占有するメモリの合計は 4X10X4 バイト、つまり 160 バイトです。
3. 三次元配列の宣言
3 次元配列は、2 次元配列を拡張したものです。
double beans[4] [10] [20]; // 4 fields, each with 10 rows of 20 beans
- このステートメントで宣言された配列には 800 個の要素があり、これは Bean プラントの出力を格納していると見なすことができます. Bean プラントの 3 つのフィールドがあり、各フィールドには 10 行 20 列のプラントが含まれます
. - 必要に応じて、任意の多次元配列を定義できます。
4. 配列宣言プログラムのコンパイル結果
配列宣言プログラムのコンパイル結果は次のとおりです。
已启动重新生成…
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 个 ==========
コンパイルしたプログラムを実行した結果は次のとおりです。
五、完全なプログラム
この記事の完全なプログラムは次のとおりです。
5.1 Main.h ファイル プログラム
#ifndef MAIN_H
#define MAIN_H
#include <stdio.h>
#include <stdlib.h>
#endif
5.2 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. まとめ
この記事では、主にC言語の高度なプログラミングで配列の多次元配列を宣言する方法を紹介します。
二次元配列宣言方式を導入しました。
二次元配列宣言方式を導入しました。
この記事はここで終わります。
- この記事ではC言語配列の多次元配列を希望します。
- あなたを助けられる。