1
*(*(p+a)+b)

a * sizeがアドレス(p)に追加される場合、なぜb * sizeが*(p + a)に追加されるのですか?*(p + a)はその場所の値のようであり、それにb * sizeを追加すると、アドレスではなくその値が変更されます。しかし、私が読んだことに基づいて、これはアドレスに追加されることを意味します。

4

1 に答える 1

4

あなたの式が与えられ、Cについて話していると仮定すると、 p はポインターへのポインターでなければなりません。何が起こるか:

char ** p;
int a = 2;
int b = 4;

(p+a) // adds 2 * sizeof(char *)
*(p+a) // evaluates to a char *
char * c = *(p+a)
(c+b) // adds 4 * sizeof(char)
*(c+b) // evaluates to a char
于 2011-02-23T11:07:48.387 に答える