【z88dk】C言語/配列(3) 2次元配列を要素数で参照する
初版 2026/02/04
改訂
array3.c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
uint8_t array[2][10] = {
{ 10, 20, 30, 40, 50, 60, 70, 80, 90, 100},
{ 110, 120, 130, 140, 150, 160, 170, 180, 190, 200}};
void print_array(uint8_t x, uint8_t y) {
// 2次元配列へ2要素でアクセスは、[行の要素数][列の要素数]になることに注意
printf("array[%d, %d] value = %d\n", y, x, array[y][x]);
printf("array[%d, %d] addr = %p\n", y, x, &array[y][x]);
}
void main() {
print_array(2, 0);
print_array(3, 0);
print_array(4, 0);
print_array(5, 1);
print_array(6, 1);
print_array(7, 1);
return;
}
- 2次元配列は行優先でメモリ上に配置される。
コンパイル
compile.sh
#!/bin/sh
zcc +msx -lmsxbios --list -subtype=msxdos $1.c -o $1.com
$ ./compile.sh ./array3
実行結果

※MSXDOS.SYSとCOMMAND.COM、コンパイルして作成した.COMを配置したディレクトリをopenMSXでマウント、MSXDOSから実行