Передача массива указателю

Рейтинг: -3Ответов: 2Опубликовано: 03.03.2011

В чем ошибка?

int i, k;
float ost, a[6], b[6], z, *t1, *t2;

for(i = 0; i < 7; i++){
    printf("A[%i] = ", i);
    scanf("%f", &a[i]);
}
*t1 = &a;

Ответы

▲ 3
  1. Надо писать printf ("A[%d] = ", i);, если хотите, чтобы в строке показывался номер элемента массива
  2. a - то же самое, что &a[0], т.е. указатель на первый элемент массива. *t - это то, что содержится в области памяти, на которую указывает указатель t, в нашем случае - переменная типа float. Поэтому присваивать одно другому нельзя.
▲ 2
  1. Указатели присваиваются вот так:

    t1 = a;
    

    В данном выражении a преобразуется в указатель на float.

    *t1 - само число по адресу t1.

  2. i < 6

    Счёт начинается с 0 и закончится на 5. При этом обработаются все 6 элементов массива.