次のことがどのように機能しているのかわかりませんか?
void main()
{
static int a[] = {10, 12, 23, 43, 43};
int *p[] = {a, a + 1, a + 2, a + 3, a + 4};
int **ptr = p;
ptr++;
printf("%d,%d,%d", ptr - p, *ptr - a, **ptr);
}
これは出力を として与えています1 1 10
。に**ptr
格納されている値が得られますptr
が、なぜptr-p
与え1
てはならないのでしょうsizeof(int)
か?