Я хочу получить адрес первого элемента массива.Этот массив объединен с указателем.
Код:
#include <stdio.h>
#include <assert.h>
#include <stdint.h>
union l_array_0_uint8_t {
uint8_t *pnt;
uint8_t array[8];
};
int main()
{
union l_array_0_uint8_t u;
uint8_t* aa = &(u.array[0]);
uint8_t* pa = u.pnt;
printf("array inner: %p\n", aa);
printf("Pointer inner: %p\n", pa);
return 0;
}
Результат:
array inner: 0x7ffdad959050
Pointer inner: 0x7ffdad959140
Почему эти два адреса различаются?Я ожидал, что массив и указатель будут иметь один и тот же адрес.