Показать сообщение отдельно
  (#1 (permalink)) Старый
Valensiya Valensiya вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.07.2022
Question Указатели в С - 16.07.2022, 11:02

c Код:
#include <stdio.h>
void main(void)
{
  int a[100], n, *end, *p,k=0;
  n=10;
  end = a + n;
  printf("end %p\n a = %p n= %d\n", end,a,n);  
  for (p = a; p < end; p++)      
  {
    printf("%4d   %p  %d\n" , *p,p,k++);
  }
}

Я нашла в интернете этот код и у меня есть нсколько вопросов:
1. В строке end = a+n к массиву а прибавилась переменная n=10, что это значит? Добавилось 10 ячеек? В переменную end записался адрес, это адрес, где находится
массив?
2. Я вывела значение а - вывелся адрес. а было массивом, а стало адресом?
3. В цикле p = a, т.е. в переменную р сохранился адрес из а, а дальше p<end. p++.
end - это тоже адрес, значит к адресу будет прибавляться 1 (как?) до тех пор, пока
p не станет равным либо большим, чем end? Просто уточняю
Ответить с цитированием
Ads