ポインタで二次元配列をアクセスする処理は実際の仕事であまりないかもしれないですが、アクセス自体は面白くて、ここで紹介します。
2次元配列をポインタでアクセス例
//コード
int a![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJkAAABqAQAAAACHIc6gAAAAAnRSTlMAAHaTzTgAAAAZSURBVEjHY2AYBaNgFIyCUTAKRsEoGOwAAAiyAAGxImSuAAAAAElFTkSuQmCC)
= {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int *p
;
for(i=0; i<3; i++){
p[i] = a[i]; //aのi番目の値とアドレスがPのi番目にセット
for(j=0; j<4; j++){
printf("%3d",*(p[i]+j));
}
}
実行結果
1 2 3 4 5 6 7 8 9 10 11 12
配列構成
![2次元配列、ポインタでアクセス](https://www.yulongblog.com/wp-content/uploads/2023/12/配列構成1.jpg)
例(コード合わせて見る)
a![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJkAAABpAQAAAAABtbwOAAAAAnRSTlMAAHaTzTgAAAAZSURBVEjHY2AYBaNgFIyCUTAKRsEoGEQAAAidAAH2d/h6AAAAAElFTkSuQmCC)
をポインタPであらわすと*(*(p+1)+2)=*(p
+2)=*(a
+2)
簡単ではありますが、以上です。