рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Параметры функции

Параметры функции - раздел Информатика, Функции   В Языке C Существует Два Способа Передачи Параметра В Функцию...

 

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

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

Если необходимо, чтобы функция могла изменять значения переменных, переданных ей в качестве фактических параметров, используют передачу параметров в функцию по ссылке. В этом случае в качестве фактического параметра указывается адрес переменной, который и заносится в стек. Вызванная функция обращается с параметром через адрес, находящийся в стеке, тем самым работая с основной переменной, а не с её копией. После выхода из функции значение переменной будет таким, каким оно было при выходе из функции.

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

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

 

Пример 7

void increment(int a, int *c)

{

a++;

(*c)++;

printf("%d %d ",a,*c);

}

 

void main(void)

{

int i=2,k=8;

increment(i,&k);

printf("%d %d",i,k);

}

На экране будет напечатано: 3 9 2 9

 

Пример 8

int abs_sum(int a, int b, int modul(int))

{

return modul(a)+modul(b);

}

 

int absolute(int x)

{

return x>=0?x:-x;

}

 

void main(void)

{

printf("%d ",abs_sum(-2,5,absolute));

}

На экране будет напечатано: 7

 

Параметры и возвращаемое значение функции main()

 

Функция main() может иметь или не иметь параметры и возвращать или не возвращать значение. Если она не имеет параметров или не возвращает значение, то в соответствующем поле указывается слово void.

Функция main() может иметь параметры, фактические значения которых могут быть переданы ей из командной строки или из другой программы при запуске программы на выполнение. В языке C имеются два встроенных параметра функции main(): int argc и char *argv[]. Использование именно таких идентификаторов не обязательно, но обязателен тип и порядок параметров. Эти параметры используются для передачи параметров командной строки. Параметр argc содержит количество параметров командной строки и имеет тип int. Он всегда не меньше единицы, так как имя программы, вызываемой для выполнения, трактуется как первый параметр командной строки. Параметр argv является указателем на массив строк. Каждый элемент массива содержит соответствующий параметр командной строки, один параметр командной строки отделяется от другого пробелом. Если в качестве параметра необходимо иметь строку, содержащую пробел, её необходимо заключить в кавычки. Если параметром командной строки является число, то оно рассматривается как строка и должно быть преобразовано с использованием специальных библиотечных функций.

В среде Borland C++ 3.1 предусмотрен ещё и третий параметр: char *env[]. Этот параметр используется для доступа к параметрам среды операционной системы (переменные окружения) и является указателем на массив строк, которые содержат эти параметры.

Параметры функции main() позиционно зависимы, то есть при использовании какого-либо параметра должны быть объявлены и все предыдущие параметры, но необязательно объявлять последующие параметры.

Функция main() может возвращать в ОС или вызывающую программу значение типа int. Для ОС MS-DOS возврат нулевого значения говорит об успешном завершении, возврат значения, отличного от нуля, говорит об аварийном завершении.

 

Пример 9

#include <stdio.h>

int main(int argc, char *argv[], char *env[])

{

for(int i=0;i<argc;i++)

printf("%sn",argv[i]);

for(int i=0;env[i];i++)

printf("%sn",env[i]);

return 0;

}

 

Данная программа, запущенная на выполнение в ОС MS-DOS, напечатает на экране командную строку MS-DOS, введённую при её запуске, и список переменных окружения. Если после неё ввести командную строку MS-DOS

if errorlevel 0 exit

то произойдёт перезагрузка ОС.

 

– Конец работы –

Эта тема принадлежит разделу:

Функции

Функции Функция это совокупность объявлений и операторов предназначенных для выполнения отдельной...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Параметры функции

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Функции
  Функция – это совокупность объявлений и операторов, предназначенных для выполнения отдельной задачи и заключённых в специальный блок. Необходимость в использовании функций возникает

Функции с переменным числом параметров
  В объявлении и определении такой функции переменное число параметров задается многоточием в конце списка формальных параметров, при этом запятая после последнего фиксированного пара

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

Указатель на функцию
  На функцию, как и на любой другой объект, можно создать указатель. Указатель на функцию содержит адрес первого оператора исполняемого кода функции. Форма записи: модификато

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги