Указатели передаются в функцию по значению или по ссылке? - C (СИ)

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

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

Здравствуйте! В общем у меня туповатый вопрос, после прочтения книги Кернигана и Ритчи я не понял, указатели передаются в функцию по значению или по ссылке? Вот примерчик:
main()
{
   int* pInt = NULL;
 
   setInt(pInt);
}
 
void setInt(int* paramInt)
{
   paramInt = malloc(sizeof(int));
}
После вызова подпрограммы setInt pInt будет инициализирован адресом или нет? И как сделать чтобы был...

Решение задачи: «Указатели передаются в функцию по значению или по ссылке?»

textual
Листинг программы
void setInt(int** paramInt)
{
   ¶mInt = malloc(sizeof(int));
}

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

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

  1. Функция setInt принимает параметр paramInt типа int**, то есть указатель на указатель целых чисел.
  2. В первой строке кода внутри функции paramInt присваивается значение, возвращаемое функцией malloc, которая выделяет память под указатель типа int.
  3. Код в функции не выполняет никаких других действий с переданным параметром paramInt. Таким образом, в данном коде указатель paramInt передается в функцию по значению, так как его значение присваивается внутри функции и не изменяется.

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


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

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

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