-5
#include<stdio.h>

main()
{
    int a[]={10,20,30,40,50};
    char *p;
    int i;

    p=(char*)a;
    for(i=0;i<8;i++)
    {
        printf("%d    %u\n",*p,p);
        p++;
    }
    return 0;
}

配列がどのようにメモリに格納されるかという動作を説明してください。

4

1 に答える 1

2

配列は、1 つの連続したメモリ ブロックに格納されます。

index:      0       |       1       |      2       |      3        |      4
bytes: 0  1  2  3   |  4  5  6  7   |  8  9 10 11  |  12 13 14 15  | 16 17 18 19
values:    10       |      20       |      30      |     40        |      50

これらの質問が役に立ちます:
配列の静的宣言の最初の要素のアドレス
このポインター演算はどのように機能しますか?

于 2012-05-31T06:21:08.493 に答える