8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Передача значений переменных в функцию()05.02.2020, 14:59. Показов 2459. Ответов 32
Метки нет Все метки)
(
int main()
Братья программисты! Вот занимаюсь немножко... возник вопрос, но но книжке его ведь не задашь) Вот 2 фрагмента кода результат работы которых идентичен! То есть мне не понятно, в чем практический смысл объявлять 2 дополнительные переменные char chin и int nin, когда все работает и без этого? Возможно это полезно в больших реальных программах? Но боюсь если мне здесь от них хочется уйти, там я вообще бы запутался...
Первый код (как в книжке - страница 176 ООП в С++ Лафоре)
Второй код где я избавился от этих переменных
Сама функция
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
05.02.2020, 14:59 | |
Ответы с готовыми решениями:
32
Передача значений переменных функциями Передача переменных в функцию Передача переменных в функцию
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
05.02.2020, 15:05 | 2 |
где ты от них избавился, и в чем суть вопроса? Почему в объявление переменная chin а в майне объявляешь ch?
1
|
8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
|
|
05.02.2020, 15:15 [ТС] | 3 |
Суть вопроса я озвучил в первом посте, а именно...
То есть мне не понятно, в чем практический смысл объявлять 2 дополнительные переменные char chin и int nin, когда все работает и без этого? надо смотреть второй вариант кода, где вместо char chin и int nin стоят ch и n Добавлено через 1 минуту в объявлении функции вообще нет переменных, там типы - символьный и числовой
0
|
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
|
|
05.02.2020, 15:16 | 4 |
R_U_S_V, А вы думаете, что ch и n не переменные что ли? В чем их отличие от chin и nin кроме меньшего количества букв?
1
|
1269 / 1026 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
|
|
05.02.2020, 15:21 | 5 |
![]() Решение
R_U_S_V, вы пишете, что во втором фрагменте вы избавились от переменных chin и nin, но в действительности вы просто дали им другие имена. Сами переменные от этого никуда не делись.
Если вы имеете в виду, что функция repchar уже содержит переменные ch и n в качестве параметров, то в данном случае это не имеет никакого значения. Переменные ch и n в функции repchar, и переменные ch и n в функции main - это совершенно разные переменные, никак друг с другом не связанные. Поэтому переименование chin в ch никак не влияет на работу программы.
1
|
8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
|
|
05.02.2020, 15:22 [ТС] | 6 |
Вы не поняли сути вопроса! Причем здесь мое не понимание переменных? Вы пост внимательно посмотрите если время найдете!!!!
0
|
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
05.02.2020, 15:22 | 7 |
R_U_S_V, Вы, похоже, думаете, что переименованием переменных чего-то добились.
Это не так. добавьте в repchar в конец строчку ch='A'; А вконец main вывод ch.
1
|
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
|
|
05.02.2020, 15:24 | 8 |
R_U_S_V, если три человека прочитали пост и не поняли сути, может быть все-таки дело не в этих людях?
Поясните подробно, что вы имеете в виду здесь. Второй код ничем не отличается от первого, кроме имен переменных
1
|
8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
|
|
05.02.2020, 15:24 [ТС] | 9 |
Народ! Поймите, я дал 2 варианта кода именно пому, что они ВМЕСТЕ не используются в данной программе! Либо тот либо этот. Ну для сравнения. Ну как еще объяснить не знаю)
0
|
57 / 42 / 15
Регистрация: 06.03.2018
Сообщений: 185
|
|
05.02.2020, 15:29 | 10 |
Ты дал те-же яйца только в профиль
![]() А если серьёзно, то наверно нужно изучить что такое область видимости.
1
|
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
|
||||||
05.02.2020, 15:33 | 11 | |||||
Попробую еще добавить, что вот здесь
объявляются переменные ch и n, которые используются в функции repchar. И ни в каком другом месте. А их значения передаются здесь или здесь И эти варианты идентичны. Это может быть даже
1
|
8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
|
|||||||||||
05.02.2020, 15:41 [ТС] | 12 | ||||||||||
Я не переименовывал переменные! Я взял их из определения функции
вот отсюда:
вот
Отлично, осталось только домыслить, для чего конкретно были нужны эти переменные chin и nin, если их легко можно заменить на те, что объявляются в определении - void repchar(char ch, int n) Каку-то роль они выполняют в программе! До меня это не доходит "ребят"
0
|
57 / 42 / 15
Регистрация: 06.03.2018
Сообщений: 185
|
|
05.02.2020, 15:42 | 13 |
Вы заблуждаетесь.
Вы сказали записать значение именно в посредники с названиями совпадающими с названиями в определении функции. p.s. Вы нас тролите?
1
|
1269 / 1026 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
|
|
05.02.2020, 15:44 | 14 |
R_U_S_V, R_U_S_V, вы точно прочитали моё первое сообщение? Там как раз об этом написано.
1
|
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
|
|
05.02.2020, 15:45 | 15 |
ТС, ты заблуждаешься, если думаешь, что ch в функции main и ch в функции repchar это одна и та же переменная. Это 2 переменные, когда ты вызываешь функцию рэпчик, то в качестве аргумента ты передаешь ей не переменную ch а ее копию или же значение, все операции, которые ты будешь делать с "копией" внутри функции репчик, никак не повлияют на переменную ch внутри функции main, она какой была, такой и останется.
1
|
8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
|
|
05.02.2020, 15:46 [ТС] | 16 |
Да, вы правы!
Я перефразирую вопрос - почему я не могу записать эти значения СРАЗУ в ch и n, которые объявляются в определении функции - void repchar (char ch, int n) ? Это же просто... Для чего нужны переменные "посредники" chin и nin? А потом значения этих переменных всеравно копируются в ch и n Путаница какая-то...
0
|
57 / 42 / 15
Регистрация: 06.03.2018
Сообщений: 185
|
|
05.02.2020, 15:50 | 17 |
потому, что cin не позволяет этого.
1
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
05.02.2020, 15:51 | 18 |
Не по теме: мля я под стол уполз Так первое, еще раз другими словами. Переменные в майне и в функции это разные переменные. Объявление в реализации (или прототипе) необходимы что бы в описании функции вы могли с ними работать. Если вы не будете объявлять переменные в майне то где будите хранить их до того момента как вы передадите их в функцию. Есть вариант передачи указателей, но это вам рано если у вас возникают такие вопросы
1
|
7412 / 5008 / 2889
Регистрация: 18.12.2017
Сообщений: 15,694
|
|||||||||||
05.02.2020, 15:51 | 19 | ||||||||||
R_U_S_V, смотрите, здесь:
ch - имя первого параметра функции, n - имя второго параметра функции а в функцию передаются значения для параметров, например: repchar('R', 10); или с помощью предварительно инициализированных переменных
1
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
05.02.2020, 15:52 | 20 |
1
|
05.02.2020, 15:52 | |
Помогаю со студенческими работами здесь
20
Для чего используеться передача структурных переменных в функцию? Передача значений в функцию C++ Передача значений из двумерного массива в функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |