Указатели передаются в функцию по значению или по ссылке? - C (СИ)
Формулировка задачи:
Здравствуйте! В общем у меня туповатый вопрос, после прочтения книги Кернигана и Ритчи я не понял, указатели передаются в функцию по значению или по ссылке?
Вот примерчик:
После вызова подпрограммы setInt pInt будет инициализирован адресом или нет? И как сделать чтобы был...
main() { int* pInt = NULL; setInt(pInt); } void setInt(int* paramInt) { paramInt = malloc(sizeof(int)); }
Решение задачи: «Указатели передаются в функцию по значению или по ссылке?»
textual
Листинг программы
void setInt(int** paramInt) { ¶mInt = malloc(sizeof(int)); }
Объяснение кода листинга программы
В данном коде:
- Функция setInt принимает параметр paramInt типа int**, то есть указатель на указатель целых чисел.
- В первой строке кода внутри функции paramInt присваивается значение, возвращаемое функцией malloc, которая выделяет память под указатель типа int.
- Код в функции не выполняет никаких других действий с переданным параметром paramInt. Таким образом, в данном коде указатель paramInt передается в функцию по значению, так как его значение присваивается внутри функции и не изменяется.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д