#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;
}
配列がどのようにメモリに格納されるかという動作を説明してください。
#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;
}
配列がどのようにメモリに格納されるかという動作を説明してください。
配列は、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
これらの質問が役に立ちます:
配列の静的宣言の最初の要素のアドレス
このポインター演算はどのように機能しますか?