Указатели и адреса - C (СИ)

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

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

Всем привет Подскажите, можно ли каким-то образом передать значение переменной i из одной функции в другую? например:
#include <stdio.h>
 
int func ()
{
    int i=5;
    int *pi=&i;
    printf("Значение i=%d", *pi);
    return 0;
}
 
int main ()
{
    &i=7;
    printf("А теперь значение i=%d", &i);
    return 0;
}

Решение задачи: «Указатели и адреса»

textual
Листинг программы
#include <stdio.h>
void    func(int *pi)
{
    (*pi)++;
}
void    main()
{
    int i;
 
    i=7;
    printf("Before i=%d",i);
    func(&i);
    printf("After i=%d",i);
}

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

В данном коде:

  1. Включается библиотека stdio.h, которая содержит функции для ввода-вывода данных.
  2. Определяется функция func(int *pi), которая принимает указатель на целое число.
  3. Внутри функции func происходит инкремент (*pi)++, то есть значение, на которое указывает указатель pi, увеличивается на 1.
  4. Определяется функция main().
  5. Внутри функции main() создается переменная типа int i со значением 7.
  6. Выводится сообщение Before i=7 с помощью функции printf().
  7. Вызывается функция func(&i), где &i - это адрес переменной i.
  8. Выводится сообщение After i=8 с помощью функции printf(). Код работает следующим образом:
  9. При вызове функции func(&i) передается адрес переменной i по ссылке.
  10. Внутри функции func происходит инкремент (*pi)++, где pi - это указатель на переменную i.
  11. После выхода из функции func переменная i увеличивается на 1.
  12. После вызова функции func(&i) выводится сообщение After i=8, где i=8, так как значение переменной i увеличилось на 1.

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


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

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

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