0

次のスニペットでは、ポインターのアドレスと値が type として参照されていsize_tます。しかし、タイトルが示すように、最後の減算は私には意味がありません。に見られるように、実際の値ではなく、8 を掛けた数値を減算するかのように動作しint arrayます。

#include <stdio.h>
#include <stdint.h>

int main()
{
    int i[6] = {2, 0, 1, 0, 20, 24};

    void *ptr = &i[2];

    printf("%zu\n", ((size_t*)ptr));
    printf("%zu\n", *((size_t*)ptr));
    printf("%zu\n", ((size_t*)ptr) - *((size_t*)ptr));
}
4

2 に答える 2

0

ポインターから減算i[2] == 1しているsize_tため、実際の差はsizeof(size_t) == 8です。

于 2013-09-23T16:21:01.907 に答える