Qubc
@Qubc
Ненавижу полисемию.

Как вывести адрес ячейки массива?

#include <stdio.h>

void main(){
	float a[3] = {0};
	for (int i = 0; i < 3; ++i)	{
		printf("%d_____%d\n", a[i], &a[i] );
		printf("%d\n",  &a[i] );
	}
}

Почему получается так :
0_____0
2686768
0_____0
2686772
0_____0
2686776
  • Вопрос задан
  • 769 просмотров
Решения вопроса 1
В форматной строке вы используете спецификатор %d, который выводит целые числа. Чтобы печатать вещественные нужен, например, %f, а для указателей %p. Таблицу спецификаторов для всех типов можно посмотреть здесь.

Я немного исправил ваш пример, чтобы он работал правильно:
#include <stdio.h>

int main()
{
  double a[] = {1, 2, 3, 4};
  
  for (int i = 0; i < 4; ++i)
  {
    printf("%f_____%p\n", a[i], &a[i]);
    printf("%p\n",  &a[i] );
  }
  
  return 0;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы