Оператор вызова функции
Оператор-выражение
В языке С любое выражение, заканчивающееся точкой с запятой (;), является оператором.
Примеры:
i++; /* увеличение значения i на 1, эквивалентно оператору i=i+1; */
i--; /* уменьшение i на 1 */
a += 2, n = 1, m++; /* выражение содержит запятые */
Поскольку в выражениях можно использовать операции присваивания наравне с другими, оператор присваивания является частным случаем оператора-выражения.
Оператор вызова функции имеет вид:
имя_функции (аргумент1,..., аргументN);
Он тоже является частным случаем оператора-выражения.
Примерами операторов вызова функции являются уже знакомые вам операторы вызова функций форматированного ввода/вывода printf и scanf. Рассмотрим эти функции детальнее.
Функция printf служит для вывода на экран монитора сообщений, данных, результатов вычислений. Число аргументов - один или более.
Первый аргумент функции - это форматная строка, которая может содержать тексты, подлежащие выводу на экран, управляющие символы, форматы вывода значений переменных или выражений. Остальные аргументы - это переменные или выражения. Вернемся к примеру программы 2.1. В операторе
|
|
printf ("Задайте два числа: ");
аргумент только один - форматная строка, содержащая текст. В операторе
printf ("%d + %d = %d\n", a, b, a+b);
четыре аргумента. Первый аргумент - форматная строка (строка символов в кавычках) показывает, как должны быть напечатаны значения остальных аргументов (a,b,а+b). Каждому из аргументов a,b и a+b соответствует одна спецификация преобразования (формат) %d. Это спецификация вывода целого числа. Кроме форматов, форматная строка содержит последовательности символов " + ", " = ", которые нужно вывести, и управляющий символ '\n' (перевод строки), чтобы после вывода результата курсор переместился в начало следующей строки.
Функция printf выводит на экран то, что указано в форматной строке, подставляя вместо каждого формата значение очередного аргумента из списка. Число форматов должно быть равно числу аргументов после форматной строки. Не забудьте это основное требование!
Ниже приведены некоторые форматы:
%d - для вывода целого числа со знаком (типов int, short);
%ld - для вывода целого числа со знаком (типа long);
%u - для вывода целого числа без знака (типа unsigned);
%f - для вывода вещественного числа (типов float, double) в формате
числа с фиксированной точкой (с точностью по умолчанию 6 цифр
после точки);
%e - для вывода вещественного числа в экспоненциальном формате:
[-]d.dddddde{ }dd (здесь d - десятичная цифра);
%c - для вывода символа;
%s - для вывода строки символов.
Например, если число 123.68 вывести в формате %f, то будет напечатано 123.680000, если же указать формат %e, то результатом будет 1.236800e+02. В форматах %f и %e можно указать точность, например:
%.1f 123.7
%.4e 1.2368e+02