Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Здесь есть возможность читать онлайн «Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 0101, Издательство: Вильямс, Жанр: Старинная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык программирования C. Лекции и упражнения (6-е изд.) 2015», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Определение функции начинается со следующего заголовка ANSI С:

void show n char(char ch, int num)

332 Глава 9

Эта строка информирует компилятор о том, что функция show n char() принимает два аргумента с именами ch и num, ch имеет тип char, а num — тип int. Переменные ch и num называются формальными аргументами или (что более предпочтительно в настоящее время) формальными параметрами. Подобно переменным, определенным внутри функции, формальные параметры являются локальными переменными, закрытыми для функции. Это означает, что можно не беспокоиться, если их имена будут дублироваться в других функциях. Значения этим переменным будут присваиваться при вызове функции. Обратите внимание, что форма ANSI С требует, чтобы каждой переменной предшествовал ее тип. То есть, в отличие от обычных объявлений, нельзя применять список переменных, которые имеют один и тот же тип:

void dibs(int х, у, z) /* некорректный заголовок функции */

void dubs(int х, int у, int z) /* правильный заголовок функции */

В стандарте ANSI С распознается также форма, которая использовалась до появления ANSI С, но она характеризуется как устаревшая и выходящая из употребления:

void show_n_char(ch, num)

char ch;

int num;

Здесь в круглых скобках содержится список имен аргументов, однако их типы объявляются позже. Обратите внимание, что аргументы объявляются перед фигурной скобкой, отмечающей начало тела функции, тогда как обычные локальные переменные объявляются после фигурной скобки. Такая форма позволяет применять списки имен переменных, разделенных запятыми, если эти переменные имеют один и тот же тип:

void dibs (х, у, z)

int х, у, z; /* допустимо */

Стандарт ANSI С направлен на то, чтобы постепенно вывести из употребления форму, применяемую ранее. Вы должны быть осведомлены об этой форме, чтобы понимать старый код, но в новых программах необходимо использовать современную форму. (Стандарты С99 и С11 продолжают предупреждать о грядущем ее устаревании.)

Несмотря на то что функция show_n_char() принимает значения из main(), она ничего не возвращает, поэтому show_n_char() имеет тип void.

Теперь посмотрим, как пользоваться этой функцией.

Создание прототипа функции с аргументами

Мы применяем прототип ANSI С, чтобы объявить функцию перед ее применением:

void show_n_char(char ch, int num);

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

void show_n_char(char, int);

Применение имен переменных в прототипе не приводит к действительному созданию этих переменных. Это просто проясняет тот факт, что char означает переменную типа char и т.д.

Снова напоминаем, что стандарт ANSI С также распознает старую форму объявления функции без списка аргументов:

void show n char();

Функции 333

Со временем эта форма будет исключена из стандарта. Но даже если это не произойдет, формат с прототипом является намного лучшим проектным решением, как будет показано позже. Основная причина, по которой следует знать устаревшую форму, связана с необходимостью чтения ранее написанного кода.

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

Значения ch и num присваиваются с использованием фактических аргументов в вызове функции. Рассмотрим первый случай применения show_n_char():

show_n_char(SPACE, 12);

Фактическими аргументами являются SPACE и 12. Эти значения присваиваются соответствующим формальным параметрам функции show_n_char() — переменным ch и num. Выражаясь кратко, формальный параметр — это переменная в вызванной функции, а фактический аргумент — это конкретное значение, которое вызывающая функция присваивает переменной внутри вызванной функции. Как показывает пример, фактическим аргументом может быть константа, переменная или даже более сложное выражение. Независимо от того, чем является фактический аргумент, он вычисляется, и его значение копируется в соответствующий формальный параметр для функции. Например, рассмотрим финальное использование show n char():

show_n_char(SPACE, (WIDTH - strlen(PLACE)) /2);

Вычисление длинного выражения, образующего второй фактический аргумент, дает в результате 10. Затем значение 10 присваивается переменной num. Функция не знает, да и не заботится о том, откуда поступает это число — из константы, переменной или более общего выражения. Еще раз подчеркнем, что фактический аргумент представляет собой конкретное значение, которое присваивается переменной, известной как формальный параметр (рис. 9.3). Поскольку вызванная функция работает с данными, скопированными из вызывающей функции, исходные данные в вызывающей функции защищены от любых манипуляций, которые вызванная функция применяет к их копиям.

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

Интервал:

Закладка:

Сделать

Похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Представляем Вашему вниманию похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Обсуждение, отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x