Форум программистов, компьютерный форум CyberForum.ru

параметры фунции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ функция копировки файлов http://www.cyberforum.ru/cpp-beginners/thread76842.html
написал функцию копировки файлов,и естетвенно не без ошибок!!! bool fileCopy(char firstFile,char secondFile){ FILE* f=fopen(firstFile,"r"); int c=0; int i=0; int y=0; if((c=getc(f))==NULL){cout<<"File "<<firstFile<<" not found!"; return 0; } FILE* f2=fopen(secondFile, "w");
C++ Написать проги на C 1) Найти сумму целых положительных чисел 30<n>100, кратных 3 и оканчивающихся на 2.4 и 8. 2)Составить программу для вычисления значения с точностью до 10^(-6) sqrt(3+sqrt(6+...+sqrt(3*(n-1)+sqrt(3*n)))). 3) В одномерном массиве, состоящем из n целых чисел, вычислить сумму положительных элементов расположенных после последнего нуля. 4) В одномерном массиве, состоящем из n целых чисел,... http://www.cyberforum.ru/cpp-beginners/thread76840.html
C++ Найти сумму элементов главной диагонали квадратной матрицы
Помогите решить 2 задачки : 1) Найти сумму элементов находящихся на главной диагонали квадратной матрицы размером 3x3.Элементы массива вводятся с клавы. 2) Задать 2-x мерную матрицу с размером 3x4 и вывести на экран сумму элементов каждой строки. Спасибо вам за ранее))))
C++ Удаление из списка
контрольная с бинарным файлом. вопрос: в работе мне надо удалить из созданного списка( структура:номера вызывающего и вызываемого абонентов (ЦЕЛЫЕ ОБЯЗАТЕЛЬНО ШЕСТИЗНАЧНЫЕ ЧИСЛА).....) номера телефонов с комбинацией XY. Мне необходимо номера создавать как строку (тип char) или как через тип unsigned. Как будет проще.
C++ Составить программу для вычисления значения http://www.cyberforum.ru/cpp-beginners/thread76829.html
1) Найти сумму целых положительных чисел 30<n>100, кратных 3 и оканчивающихся на 2.4 и 8. 2)Составить программу для вычисления значения с точностью до 10^(-6) sqrt(3+sqrt(6+...+sqrt(3*(n-1)+sqrt(3*n)))).
C++ В квадратной матрице определить минимум среди элементов диагоналей 3) В одномерном массиве, состоящем из n целых чисел, вычислить сумму положительных элементов расположенных после последнего нуля. 4) В одномерном массиве, состоящем из n целых чисел, вычислить сумму положительных элементов. 5) В квадратной матрице определить минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. (спасибо заранее) подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
20.12.2009, 00:13     параметры фунции
Функция printf определена как int printf(const char* format, ...); , то есть, имеет переменное число аргументов: строка формата обязательна, а дальше можно передавать сколько хочешь. Если ты передашь больше, чем нужно, ненужные значения будут проигнорированы. Если передашь меньше, printf всё равно возьмёт нужные значения со стека, но это будет неизвестно что (скорее всего, локальные переменные вызвавшей функции). Переменное число параметров - вещь удобная, но опасная, поскольку ошибки выявляются только во время исполнения. Функция printf только читает переданные ей данные, поэтому максимальный риск заключается в том, что выведется неправильный текст (в случае с %s это может быть довольно большое количество неправильного текста) или будет попытка чтения из запрещённых областей памяти, что приведёт к аварийному останову программы. scanf пишет в память, поэтому к ассортименту добавляются такие эзотерические вещи, как изменение произвольных участков в памяти, включая любые переменные любых функций, разрушение программного кода и другие весёлые штукесы.
Вдохновившись этими блистательными перспективами, новичок может спросить: "А что, эти функции такие уникальные? Или я тоже могу писать свои функции с переменным числом аргументов?" Ответ - да, можете. Смотрите хелп по stdarg.h и макросам va_list и va_arg. Помимо самих аргументов, вам придётся как-то определять их тип и количество (printf делает это по строке формата).
Второй вопрос, связанный с этой темой - "а могу ли я написать функцию с переменным числом аргументов, которая передаёт их в другую функцию с переменным числом аргументов, например, тому же printf?" Ответ - можно, но не напрямую. Такой функции надо будет уже передавать сам va_list. Самому printf такое уже не передашь, но специально для этих целей есть vprintf.
 
Текущее время: 12:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru