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

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

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

Здравствуйте. Есть следующий код, который успешно компилируется С++ компилятором, а вот на чистом С - уже нельзя.
#include <stdio.h>
 
void init(int** &q, int* &p) //так нельзя на С
{
    q = &p;
    printf("Value of x via q in function init: %d\n\n", **q); /* вывод значения х, через q */
}
 
void main()
{
    int x = 100;
    int *p = &x;
    int **q = NULL;
 
    init(q, p);
 
    printf("Value of x via q in function Main: %d\n\n", **q); /* вывод значения х, через q */
 
    system("pause");
}
Ну и вопрос: как этот код скомпилировать на С?

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

textual
Листинг программы
#include <stdio.h>
 
void init(int ** q, int * p)
{
    *q = p;
    /* вывод значения х, через q */
    printf("Value of x via q in function init: %d\n\n", **q);
    return;
}
 
void main()
{
    int x = 100;
    int *p = &x;
    int *q = NULL;
    
    printf("Value of x via p in function Main: %d\n\n", *p);
 
    init(&q, p);
 
    /* вывод значения х, через q */
    printf("Value of x via q in function Main: %d\n\n", *q);
 
    system("pause");
    return;
}

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

  1. Объявление функции init с двумя аргументами типа int *.
  2. Внутри функции init присваивание аргумента q значению аргумента p.
  3. Вывод значения переменной x через указатель q с помощью функции printf.
  4. Возвращение из функции init без значений.
  5. Объявление функции main с типом возврата void.
  6. Объявление переменной x типа int со значением 100.
  7. Объявление переменной p типа int* и инициализация её значением адреса переменной x.
  8. Объявление переменной q типа int* и инициализация её значением NULL.
  9. Вывод значения переменной x через указатель p с помощью функции printf.
  10. Вызов функции init с аргументами &q и p.
  11. Вывод значения переменной x через указатель q с помощью функции printf.
  12. Вызов функции system с аргументом pause.
  13. Возвращение из функции main без значений.
  14. Конец кода.

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


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

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

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