Прокомментировать код - C (СИ) (74867)
Формулировка задачи:
вобщем вот пример из книги кернигана и ритчи.. насколько я знаю все что происходит внутри функции это есть локально и временно.. тогда как из функции getline() помимо значения которая функция отдает через return, просачиваются еще и битком набитый инфой массивы.. они ж не должны в теории.. все должно было остаться в вункции..
и почему массивы могут удирать из функции невредимыми а обычные переменные нет?.. в примере ниже этот прикол не прокатывает..
помогите, а?..
#include <stdio.h>
#include <stdlib.h>
#define MAXLINE 1000
int getline(char line[], int lim);
void copy(char to[], char from[]);
/*печать самой длинной строки*/
int main()
{
int len; /*длинна текущей строки*/
int max = 0; /*длинна максимальной из просмотренных строк*/
char line[MAXLINE]; /*сама строка*/
char longest[MAXLINE]; /*самая длинная строка из введенных*/
while((len = getline(line, MAXLINE)) > 0)
if(len > max){
max = len;
copy(longest, line);
}
if(max > 0) /*была ли хоть одна строка?*/
printf("%s", longest);
return 0;
}
/*чтение строки в s, возврат длины*/
int getline(char s[], int lim){
int c, i;
for(i = 0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
if(c == '\n'){
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
/*копирует из 'from' в 'to'; to достаточно большой*/
void copy(char to[], char from[]){
int i = 0;
while((to[i] = from[i]) != '\0')
++i;
}#include <stdio.h>
#include <stdlib.h>
int abc(int, int);
int main()
{
int a = 1;
int b = 2;
int c = 0;
printf("%d, %d, %d\n", a, b, c);
c = abc(a, b);
printf("%d, %d, %d\n", a, b, c);
return 0;
}
int abc(int aq, int bq){
int x = aq + bq;
aq = 9;
bq = 9;
return x;
}Решение задачи: «Прокомментировать код»
textual
Листинг программы
int sum(int, int);
Объяснение кода листинга программы
- В коде определен прототип функции с именем
sum, которая принимает два целочисленных аргумента. - После прототипа функции нет тела, поэтому можно предположить, что функция определена в другом месте.
- В коде нет других элементов, которые можно было бы прокомментировать.