C言語及びプログラム設計向上ルーチン-35ポインタを用いて二次元配列を操作する

1302 ワード

先生の授業リンクを祝う  C言語及びプログラム設計の向上 この授業の説明
2 D配列要素へのポインタの使用
#include <stdio.h>
int main( )
{
    int a[3][4]= {1,3,5,7,9,11,13,15,17,19,21,23};
    int *p;
    for(p=a[0]; p<a[0]+12; p++)
    {
        printf("%3d  ",*p);
    }
    return 0;
}
1 D配列へのポインタの使用
#include <stdio.h>
int main( )
{
    int a[3][4]= {1,3,5,7,9,11,13,15,17,19,21,23};
    int i,j,(*p)[4];
    for(p=a,i=0; i<3; i++,p++)
    {
        for(j=0; j<4; j++)
            printf("%3d ",*(*p+j)); 
        printf("
"); } return 0; }
1 D配列を指すポインタの2つを使用
#include <stdio.h>
int main( )
{
   int a[3][4]= {1,3,5,7,9,11,13,15,17,19,21,23};
   int (*p)[4], i, j;
   p=a[0];
   for (i=0; i<3; i++)
   {
      for(j=0; j<4; j++)
          printf("%d\t", *(*(p+i)+j));
       printf("
"); } return 0; }
ポインタ配列の使用
#include <stdio.h>
int main()
{
    int b[2][3]= {{1,2,3},{2,4,6}};
    int *pb[2];
    int i,j;
    pb[0]=b[0];
    pb[1]=b[1];
    for(i=0; i<2; i++)
    {
        for(j=0; j<3; j++,pb[i]++)
            printf("%2d",*pb[i]);
        printf("
"); } return 0; }