Так 10210x2317k 082;ак в «С» передача аргументов функциям осуществляется «по значению», вызванная процедура не имеет непосредственной возможности изменить переменную из вызывающей программы. Что же делать, если вам действительно надо изменить аргумент?
swap
swap a b
swap
void swap(int x, int y) //
вызова по значению swap a b в вызывающей функции. К счастью, все же имеется возможность получить желаемый эффект. Вызывающая программа передает указатели подлежащих изменению значений:
swap(&a, &b
так 10210x2317k 082;ак операция & &A является указателем на a swap аргументы описываются как 10210x2317k 091;казатели и доступ к фактическим операндам осуществляется через них.
void swap(int *px, int *py) //Перестановка *px и *py
swap
getint, которая осуществляет преобразование поступающих в свободном формате данных, разделяя поток символов на целые значения, по одному целому за одно обращение. Функция getint должна возвращать либо найденное значение, либо признак 10210x2317k 082;онца файла, если входные данные полностью исчерпаны. Эти значения должны возвращаться как 10210x2317k 086;тдельные объекты, какое бы значение ни использовалось для EOF, даже если это значение вводимого целого.
scanf getint eof
getint
int n, v, array[size];
for (n = 0; n < size && getint(&v) != eof; n++)
array n v
В результате каждого обращения v getint &v v v getint
getint atoi
getint(int *pn) /* get next integer from input */
for (*pn = 0; c >= '0' && c <= '9'; c = getch())
*pn = 10 * *pn + c - '0';
*pn *= sign;
if (c != eof)
ungetch c
return c
}
*pn используется всюду в getint как 10210x2317k 086;бычная переменная типа int getch ungetch (описанные в главе 5) , так 10210x2317k 095;то один лишний символ, который приходится считывать, может быть помещен обратно во ввод.
getfloat getint для чисел с плавающей точкой. Какой тип должна возвращать getfloat
|