Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
1

Передача аргументов в функцию

25.10.2015, 13:54. Показов 581. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго всем дня!
Я немного не понял листинг программы из учебника Р.Лафоре:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include"stdafx.h"
#include<iostream>
#include<windows.h>
using namespace std;
void repchar(char, int);
int main()
{
    char chin;
    int nin;
    setlocale(LC_ALL, "Rus");
    cout << "Введите символ: ";
    cin >> chin;
 
    cout << "Введите число повторений этого символа: ";
    cin >> nin;
 
    repchar(chin, nin);
 
    return 0;
}
 
void repchar(char ch, int n)
{
    for (int j = 0; j <= n; j++)
        cout << ch;
    cout << endl;
}
Вопрос - почему в функции main() значения представлены переменными chin и nin,а в функции repchar() - ch и n ?
Изначально я везде использовал chin и nin - задача так же решалась корректно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2015, 13:54
Ответы с готовыми решениями:

Передача аргументов в функцию
При сборке кода выдает ошибку (её я написал в комментарий). Что значит ошибка? #include...

Передача аргументов в функцию
как передать аргумент в функцию по указателю? нашел только по значению: int sqr(int x); int...

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

Передача аргументов в функцию
Прошу помощи в разборе багов кода. Ошибка при компиляции связана с неверной передачей аргументов...

6
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
25.10.2015, 14:00 2
Ofelion, имена параметров и аргументов могут совпадать, а могут не совпадать - зависит от программиста. Раз уж вы задали этот вопрос, то, видимо, не особо разбираетесь в функциях. Так?
0
10 / 10 / 10
Регистрация: 04.09.2014
Сообщений: 62
25.10.2015, 14:01 3
Ofelion, потому что имена не имеют значения, формальные параметры функции просто инициализируются фактическими аргументами, которые ты передаешь при вызове функции.
0
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
25.10.2015, 14:28  [ТС] 4
Да, я только начал проходить тему функций, поэтому и возникают подобные вопросы.

Добавлено через 6 минут
В общем, я вроде понял, то есть, главное, чтобы совпадали типы данных вызываемой и объявленной функции, а параметры могут и не совпадать?
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
25.10.2015, 18:08 5
Цитата Сообщение от Ofelion Посмотреть сообщение
главное, чтобы совпадали типы данных вызываемой и объявленной функции
Как-то размыто. Скажем так:
1) нужно, чтобы позволял контекст;
2) нужно, чтобы совпадали типы параметров и аргументов;
3) нужно, чтобы совпадал порядок передаваемых аргументов по типам.

1)
C++
1
2
3
4
5
void func() { // здесь что-то делаем }
int main()
{
    int n = func(); // так делать нельзя, о чем компилятор вам сообщит, т.к. func возвращает void, т.е. ничего не возвращает
}
2)
C++
1
2
3
4
5
void func(int n) { // здесь что-то делаем }
int main()
{
    func("Hello"); // ошибка! Типы параметра и аргумента не совпадают
}
3)
C++
1
2
3
4
5
void func(const char *str, int n) { // здесь что-то делаем }
int main()
{
    func(5, "Hello"); // ошибка! Порядок следования типов параметров не совпадют
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
25.10.2015, 18:22 6
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
нужно, чтобы совпадали типы параметров и аргументов;
Или чтобы была возможность неявного преобразования типов фактических значений.
1
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
25.10.2015, 18:50  [ТС] 7
Спасибо!
Пока вроде всё понятно.
0
25.10.2015, 18:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2015, 18:50
Помогаю со студенческими работами здесь

Передача аргументов в функцию
Привет! Пишу одну программку , и , собственно , уже написал , но код у меня в ней повторяется...

Передача аргументов в функцию
Что сработает быстрее? void Func(const A &amp;a = A(0, 0, 0)) { } или void Func(A a =...

Передача аргументов в функцию и возврат значения
Зачем нужны аргументы функции? Что делает return, если задать ненулевое значение? Как из main()...

Передача аргументов в функцию по ссылке и указателю
Чем отличается передача по ссылке от передачи по указателю аргументов в функцию?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru