Каким образом аргументы передаются по значению? - C (СИ)

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

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

Всем доброго суток. Решил познать язык С. Взял для начала книжку Кернигана-Ритчи. Дошел до раздела "Аргументы: передача по значению" (раздел 1.8). Читаю вот такой текст: "В языке С все аргументы передаются "по значению". Это означает, что вызываемая функция получает значения своих аргументов в виде временных переменных, а не оригиналов <..> в С вызываемая фунция не может модифицировать переменные в вызывающей функции: она вправе изменять только свои локальные переменные, временные копии этих переменных". Вопрос в следующем: почему тогда работает программа из раздела 1.9? В разделе 1.9 присутствует функция int getline(char line[], int len), которой передают строку char line[], фунция ее радостно изменяет и выдает измененной. Как это коррелирует с предыдущим утверждением? Или я что-то упускаю? Подскажите новичку, пожалуйста =)) Куски текста на всякий случае ниже:
int getline(char line[], int maxline);
main()
 
{
    char line[MAXLINE];
    <...>
     while ((len = getline(line, MAXLINE))>0)
   <...>
}
int getline(char s[], int lim)
{
    int c, i;
 
    for(i=0; i< lim-1 && (c=getchat())!=EOF; i++)
       s[i]=c;
  return i;
}

Решение задачи: «Каким образом аргументы передаются по значению?»

textual
Листинг программы
int getline(char *line, int len);

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


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

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

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