Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Использование “ , ” , формирование параметров .

Поиск


void f(int);
int main()
{
int x;
std: cin>>x;
f(x);   
// f (cin>>x, x);
}

Указатели на массивы в качестве параметров функции.

 Компилятор Си никогда не передаёт массивов по значению. Передаётся только указатель на массив.

int ar1[k];
int ar2[k][m];
F(ar1,ar2);
void F(int *p1, int (*p2)[M])
int **p2;
void F(int p1[], int p2[][M])

 

Значения аргументов функций по умолчанию.

void f (char, int, float);
f(‘A’, 3, 2.4);
void f1 (char, int, double=1.5);
f1(‘A’, 3, 2.4);
// по умолчанию можно использовать >=1 аргумента, но все они должны располагаться в конце списка аргументов
f1(‘A’, 3);

 Замечание: поставить запятую вместо пропущенного параметра по умолчанию НЕЛЬЗЯ!!
f1(‘A’,, 3.2);

c=10; a=f;

Блок схемы.

Имя функции, передаваемые параметры

 

 


                                                                      нет                        да

 

     
Имя функции

 

 

Переменное число параметров функции.

Си допускает использование переменного числа параметров.

Специфика вызова:

1) признаком функции с переменным числом аргументов является многоточие в списке параметров;

2) встретив … компилятор прекращает контроль соответствующего типа;

3) у функции должен быть хотя бы один обязательный параметр;

4) функция с переменным числом параметров должна иметь способ определения их точного числа при каждом вызове;

int Func(int i; …);
int Func (int i, float z, …);

Признаком конца списка параметров является -1.

int Func(int i, …)
{
int count=0, sum=0;
int *p=&i;
while(*p!=-1)
{
     count ++;
     sum+=*p++;
}
return sum;
}


Функции стандартной библиотеки

(printf, scanf).

int printf(const char *, …);

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

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

%c – char

%d – int

%i – int

%e – exp // x=1,1e+0,02

%f – float

%g – float, но без лишних нулей

%o – восьмеричное представление числа

%p – значение адреса указателя в шестнадцатеричном виде

%s – массив строк

%u – преобразование аргумента к целому беззнаковому в десятичном виде

%x - преобразование аргумента к целому беззнаковому в шестнадцатеричном виде

 

int m = -1;

printf(“%x”,m);

 

%[+-n]s (строка символов)

%[+-n]f (дробное число в фиксированном формате)

%[+-n]e (количество цифр после десятичной точки)

%[+-n]i (d) (количество выводимых цифр)

%[+-n]g (максимальное количество цифр)

 

Виды возвращаемых значений и механизмы их формирования.

Пользовательский тип
Адрес
Базовый тип
                              Возвращаемое значение

 


         
указатель
 
ссылка

 


Функция может возвращать:

-объект базового типа;

-объект пользовательского типа;

-указатель или ссылку;

bool func (); //базовый тип
main ()
{
bool b = Func ();
}

int &f()
{
static int n;
return n;
}



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 55; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.162.166 (0.007 с.)