3

これは教科書の C プログラムです。ユーザーに 3*5 の 2D 配列を要求し、3 行目を出力します。

と混同していint* p[5]ます。ここに が必要な理由は[5]、ちょうどいいと思いますint* pint配列内の次のメモリ空間を繰り返し追加して指すことができます。そして、このプログラムでポインターがどのように機能するかを誰か説明できますか?

#include <stdio.h>

int main(void){
        int a[3][5];
        int i,j;
        int *p[5];

        p = &a[0];
        printf("Please input:\n");
        for(i = 0; i < 3; i++){
                for(j = 0; j<5;j++){
                        scanf("%d\n",(*(p+i))+j);
                }
        }
        p = &a[2];
        printf("the third line is:\n");
        for(j = 0; j<5; j++){
                printf("%5d", *((*p)+j));
        }
        printf("\n");
}
4

1 に答える 1