Array M. УЭИТ - Язык Си - руководство для начинающих

Тут можно читать онлайн Array M. УЭИТ - Язык Си - руководство для начинающих - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Мир, год 1988. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык Си - руководство для начинающих
  • Автор:
  • Жанр:
  • Издательство:
    Мир
  • Год:
    1988
  • Город:
    Москва
  • ISBN:
    5-03-001309-1 /русск./
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Array M. УЭИТ - Язык Си - руководство для начинающих краткое содержание

Язык Си - руководство для начинающих - описание и краткое содержание, автор Array M. УЭИТ, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
M. УЭИТ   С. ПРАТА    Д. МАРТИН
Язык Си — руководство для начинающих

Язык Си - руководство для начинающих - читать онлайн бесплатно полную версию (весь текст целиком)

Язык Си - руководство для начинающих - читать книгу онлайн бесплатно, автор Array M. УЭИТ
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

/* титул фирменного бланка2 */

#define NAME "MEGATHINK, INC."

#define ADDRESS "10 Megabuck Plaza"

#define PLACE "Mcgapolis, CA 94904"

main( )

{

int spaces;

starbar( );

space(25); /* space( ) использует в качестве аргумента константу*/

printf("%s\n", NAME);

spaces = (65 - strlen(ADDRESS))/2;

/* мы заставляем программу вычислять, сколько пропустить пробелов */

space(spaces); /* аргументом является переменная */

printf("%s\n", ADDRESS);

space((65 - strlen(PLACE))/2); /* аргументом является выражение */

printf(" %s \n", PLACE);

starbar( );

}

/* определение функции starbar( ) */

#include

#define LIMIT 65

starbar( )

{

int count;

for (count = 1;count <= LIMIT;count++) putchar('*');

putchar('\n');

}

/* определение функции space( ) */

space(number)

int number; /* аргумент описывается перед фигурной скобкой */

{

int count /* дополнительная переменная описывается

после фигурной скобки */

for (count = 1;count <= number;count++)

putchar(' ');

}

РИС. 9.3. Программа, печатающая титул фирменного бланка.

Обратите внимание на то, как мы экспериментировали при вы зовах функции space( ):мы задавали аргумент тремя различными способами. Являются ли все они работоспособными? Да - и вот доказательство.

*********************************************************************

MEGATHINK, INC.

10 Megabuck Plaza

Megapolis, CA 94904

*********************************************************************

Рассмотрим сначала, как определить функцию с одним аргументом, после чего перейдем к вопросу о том, как она используется.

Определение функции с аргументом: формальные аргументы

Определение нашей функции начинается с двух строк:

space(number)

int number;

Первая строка информирует компилятор о том, что у функции space( )имеется аргумент и что его имя number. Вторая строка - описание, указывающее компилятору, что аргумент numberимеет тип int. Обратите внимание: аргумент описывается перед фигурной скобкой, которая отмечает начало тела функции. Вообще говоря, вы можете объединить эти две строки в одну:

space(int number;)

Независимо от формы записи переменная numberназывается "формальным" аргументом. Фактически это новая переменная, и в памяти компьютера для нее должна быть выделена отдельная ячейка. Посмотрим, как можно пользоваться этой функцией.

Вызов функции с аргументом: фактические аргументы

Задача в данном случае состоит в том, чтобы присвоить некоторую величину формальному аргументу number. После того как эта переменная получит свое значение, программа сможет выполнить свою задачу. Мы присваиваем переменной numberзначение фактического аргумента при вызове функции. Рассмотрим наш первый случай использования функции space( ):

space(25);

Фактический аргумент здесь 25, и эта величина присваивается формальному аргументу - переменной number, т. е. вызов функции оказывает следующее действие:

number = 25;

Короче говоря, формальный аргумент - переменная в вызываемой программе, а фактический аргумент - конкретное значение, присвоенное этой переменной вызывающей программой. Как было показано в нашем примере, фактический аргумент может быть константой, переменной или даже более сложным выражением. Независимо от типа фактического аргумента он вначале вычисляется, а затем его величина (в данном случае некоторое целое число) передается функции. Рассмотрим, например, наше последнее обращение к функции space( ).

space((65- strlen(PLACE))/2);

Функция как "черный ящик"

Рассматривая функцию space( )как черный ящик, можно сказать, что ее вход - это число пропущенных позиций, а выход -j фактический пропуск позиций. Вход связан с функцией через apгyмент.

РИС 94 Фактические аргументы и формальные аргументы С помощью аргумента - фото 55

РИС. 9.4. Фактические аргументы и формальные аргументы.

С помощью аргумента обеспечивается связь между функциями main( )и space( ). В то же время переменная countописана в теле функции, и другие функции ничего не знают о ней. Указанная переменная является частью механизма, скрытого внутри черного ящика. Это не та же переменная, что countв starbar().

Наличие нескольких аргументов

Если для связи с некоторой функцией требуется более одного аргумента, то наряду с именем функции можно задавать список аргументов, разделенных запятыми, как показано ниже.

printnum(i,j) int i, j;

{ printf(" Новых точек = %d. Всего точек = %d.\n", i, j); }

Мы уже знаем, как передавать информацию из вызывающей программы в вызываемую функцию. Можно ли передавать информацию каким-нибудь другим способом? Этот вопрос послужит нам темой следующего обсуждения.

ВОЗВРАЩЕНИЕ ЗНАЧЕНИЯ ФУНКЦИЕЙ: ОПЕРАТОР return

Создадим функцию, вычисляющую абсолютную величину числа. Абсолютная величина числа - это его значение (если отбросить знак). Следовательно, абсолютная величина 5 равна 5, а абсолютная величина -3 равна 3. Мы назовем эту функцию abs( ). Входом для abs()может быть любое число, для которого мы хотим найти абсолютную величину. Выходом функции будет соответствующее неотрицательное число. Входная величина может обрабатываться благодаря наличию аргумента; выходная величина возвращается (т. е. выдается), как вы увидите ниже, при помощи ключевого слова языка Си - return. Поскольку функция abs( )должна быть вызвана другой функцией, мы создадим простую программу main( ), основной целью которой будет проверка, работает ли функция abs( ). Программа, спроектированная для того, чтобы проверять работу функции именно таким образом, называется "драйвером". Драйвер подвергает функцию последовательным проверкам. Если результаты оказываются удовлетворительными, то ее можно поместить в программу, заслуживающую большего внимания. (Термин "драйвер" обычно относится к программам, управляющим работой устройств.) Приведем далее наш драйвер и функцию, вычисляющую абсолютную величину числа:

/* abs.драйвер */

main( )

{

int а = 10, b = 0, с = -22;

int d, e, f;

d = abs(a);

с= abs(b);

f = abs(c);

printf(" °%d %d %d\n" , d, e, f);

}

/* функция, вычисляющая величину числа */

abs(x) int x;

{

int y;

у = (x < 0) ? -x : x; /* вспомните операцию ?: */

return (у ); /* возвращает значение у вызывающей программе */

}

Результат работы программы выглядит так:

10 0 22

Сначала вспомним операцию условия ?:. Эта операция в функции abs( )выполняется следующим образом: если xменьше 0, уполагается равным -x; в противном случае у полагается равным x. Это как раз то, что нам нужно, поскольку если xравен -5, то уравен -(-5), т. e. 5.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Array M. УЭИТ читать все книги автора по порядку

Array M. УЭИТ - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык Си - руководство для начинающих отзывы


Отзывы читателей о книге Язык Си - руководство для начинающих, автор: Array M. УЭИТ. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x