Почему адреса элементов массива находятся в памяти не по порядку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Приветствую! Подскажите пожалуйста почему адреса элементов массива находятся в памяти не по порядку? почему и где происходит изменение адресов после выполнения функции sorting()?
#define SIZE 10
 
void sorting(int *massiv, int *general, int *generalPtr)
{
    printf("%d  %d\n", massiv[0], massiv[7]);
    int z = 0;
    for (int x = 0; x < SIZE; x++)
        if ((*general > massiv[x]) && (massiv[x] > *generalPtr))
    { 
        *generalPtr = massiv[x]; 
         generalPtr = &massiv[x];
    }
 
    for (int c = 0; c < SIZE; c++)
    {
        printf("massiv[%d]  %p\n",c,massiv[c]);
    }
    printf("%p\n", *generalPtr);
    z = *general;
    *general = *generalPtr;
    *generalPtr = z;
}
int main(void)
{
    
    int massiv[10] = { 37,2,6,4,89,8,10,12,68,45 };
    int *general = massiv;
    int general_ret = 0;
    int *generalPtr = &general_ret;
    
    for (int c = 0; c < SIZE; c++)
    {
        printf("massiv[%d]  %p\n", c, massiv[c]);
    }
    sorting(massiv,general, generalPtr);
    getch();
}

Решение задачи: «Почему адреса элементов массива находятся в памяти не по порядку»

textual
Листинг программы
printf("massiv[%d]  %p\n", c, &massiv[c]);

Объяснение кода листинга программы

В данном коде на языке C происходит следующее:

  1. massiv - это название массива, который содержит некоторое количество элементов.
  2. c - это переменная, которая используется для индексации элементов массива massiv.
  3. printf - это функция вывода информации на экран.
  4. massiv[c] - это выражение, которое обращается к элементу массива massiv с индексом c.
  5. &massiv[c] - это выражение, которое получает адрес элемента массива massiv с индексом c.
  6. printf(massiv[%d]  %p\n, c, &massiv[c]); - это вызов функции printf, которая выводит на экран сообщение следующего вида: massiv[c]  address of massiv[c]. Таким образом, данный код выводит на экран информацию о том, какие элементы массива massiv хранятся по каким адресам в памяти.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.467 из 5
Похожие ответы