Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

C 多次元配列とポインタ

Cでの多次元配列についてみていきます。

まず初期化とアクセス

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int matrix[2][5] = {{1,2,3,4,5}, {6,7,8,9,10}};
    
    for(int i=0; i<2; ++i){
        for(int j = 0; j<5; ++j){
            printf("matrix[%d][%d] アドレス: %p 値: %d\n",
                i, j, &matrix[i][j], matrix[i][j]);
        }
    }
    return 0;
}

直観的で特に問題はないはずです。

配列にたいするポインタは、

int (*pmatrix)[5] = matrix;

カッコなしだと要素5つのintへのポインタになります。