Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Функции с переменным числом параметров
В СИ++ допустимы функции, у которых при компиляции не фиксируется число параметров, и, кроме того может быть неизвестен тип этих параметров. Количество и тип параметров становится известным только в момент вызова, когда явно задан список фактических параметров. Каждая функция с переменным числом параметров должна иметь хотя бы один обязательный параметр. Определение функции с переменным числом параметров: тип имя (явные параметры,...) {тело функции } После списка обязательных параметров ставится запятая, а затем многоточие, которое показывает, что дальнейший контроль соответствия количества и типов параметров при обработке вызова функции производить не нужно. Сложность заключается в определении начала и конца списка параметров, поэтому каждая функция с переменным числом параметров должна иметь механизм определения количества и типов параметров. Существует два подхода: 1) известно количество параметров, которое передается как обязательный параметр; 2) известен признак конца списка параметров; Пример1 Найти среднее арифметическое последовательности чисел //известен признак конца списка параметров #include<iostream.h> float sum(int k,...) { int *p=&k;//настроили указатель на параметр k int s=0; for(;k!=0;k--) s+=*(++p); return s/k; } void main() { cout<<”\n4+6=”<<sum(2,4,6);//находит среднее арифметическое 4+6 cout<<”\n1+2++3+4=”<<sum(4,1,2,3,4);//находит среднее арифметическое 1+2+3+4 } Для доступа к списку параметров используется указатель *p типа int. Он устанавливается на начало списка параметров в памяти, а затем перемещается по адресам фактических параметров (++p). Пример 2. //известен признак конца списка параметров #include<iostream.h> int sum(int k,...) { int *p=&k;//настроили указатель на параметр k int s=*p;//значение первого параметра присвоили s for(int i=1;p!=0;i++)//пока нет конца списка s+=*(++p); return s/(i-1); } void main() { cout<<”\n4+6=”<<sum(4,6,0);//находит среднее арифметическое 4+6 cout<<”\n1+2++3+4=”<<sum(1,2,3,4,0);//находит среднее арифметическое 1+2+3+4 }
Date: 2015-08-15; view: 393; Нарушение авторских прав |