Это происходит из-за того, что вы пытаетесь вывести адрес ячейки массива в формате %d, который ожидает переменную типа int. Однако адреса в C представляются в виде указателей типа void *, который размером обычно равен 4 или 8 байтам в зависимости от архитектуры (32-битная или 64-битная).
Кроме того, для вывода адреса указателя корректно используйте "%p" вместо "%d" в функции printf. Вот исправленный код:
#include <stdio.h> int main() { float a[3] = {0}; for (int i = 0; i < 3; ++i) { printf("%f_____%p\n", a[i], (void*)&a[i]); } return 0; }
Это происходит из-за того, что вы пытаетесь вывести адрес ячейки массива в формате %d, который ожидает переменную типа int. Однако адреса в C представляются в виде указателей типа void *, который размером обычно равен 4 или 8 байтам в зависимости от архитектуры (32-битная или 64-битная).
Кроме того, для вывода адреса указателя корректно используйте "%p" вместо "%d" в функции printf. Вот исправленный код:
#include <stdio.h>int main() {
float a[3] = {0};
for (int i = 0; i < 3; ++i) {
printf("%f_____%p\n", a[i], (void*)&a[i]);
}
return 0;
}