C言語の多次元配列へのポインタの説明とサンプルコードです。
1. 配列要素へのポインタ
最初は導入です。C言語の入門書にも登場する配列とポインタの関係を説明します。
1.1. 一次元配列とポインタの組み合わせ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include <stdio.h> #define NUMBER_OF_COLUMNS 4 int main(void) { int linear_array_x[NUMBER_OF_COLUMNS] = { 1, 2, 3, 4}; int linear_array_y[NUMBER_OF_COLUMNS] = { 11, 12, 13, 14}; int *top_of_columns; top_of_columns = linear_array_x; printf("top_of_columns[1] = %d\n", top_of_columns[1]); /* 2 */ printf("top_of_columns[3] = %d\n", top_of_columns[3]); /* 4 */ top_of_columns = linear_array_y; printf("top_of_columns[1] = %d\n", top_of_columns[1]); /* 12 */ printf("top_of_columns[3] = %d\n", top_of_columns[3]); /* 14 */ return 0; } |
もっともシンプルな例です。整数型の1次元配列を定義して、配列の先頭要素へのアドレスをポインタ変数 int *top_of_columns
に代入しています。「ポインタ top_of_columns は一次元配列の先頭要素を指している」ということを明確にするために、2つの一次元配列を用意して、途中で指している一次元配列を書き換えています。
続きを読む →