Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
AnonymC
1181 / 466 / 87
Регистрация: 23.06.2009
Сообщений: 6,381
Завершенные тесты: 1
1

Передача значения и передача переменной

27.03.2010, 21:01. Просмотров 8624. Ответов 11
Метки нет (Все метки)

объясните мне разницу...и с кодами пожалуйста...думаю передача значений это через ссылки\указатели,а передача переменных-переменных

Добавлено через 2 минуты
у кого есть С++ за 21 день откройте пожалуйста страницу 272 и объясните , прошу а то не доходит
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2010, 21:01
Ответы с готовыми решениями:

Передача значения переменной по ссылке
Есть событие, которое происходит в методе someMethod, при выполнении которого программа вылетает. ...

Передача значения переменной в IplImage
Есть данные в файле с названием изображений которые нужно рассматривать. Данные названия получаю...

Передача значения переменной-члена из класса в функцию
Добрый день, имеется класс: class ZernPole{ public:...

Передача значения переменной из одной формы в другую
собственно, название темы говорит само за себя) пишу, мол, #include <vcl.h> #pragma...

Передача значения переменной из родительского класса в дочерний
Приветствую. Есть код: class ychebnik { protected: int A; public: ychebnik(){}; void...

11
M128K145
Эксперт JavaЭксперт С++
8340 / 3561 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
27.03.2010, 21:44 2
МедведЪ, что именно непонятно? Там пример простейшего ацессора. Скажи какой именно момент неясен
0
Genius Ignat
1249 / 787 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
27.03.2010, 22:01 3
МедведЪ:
Не читай книги вечером тогда активность ГМ ниже, следовательно и доходит до понимания дольше.
1
AnonymC
1181 / 466 / 87
Регистрация: 23.06.2009
Сообщений: 6,381
Завершенные тесты: 1
27.03.2010, 22:42  [ТС] 4

Не по теме:

реально что ли?а я гвоорю че туплю:(


Цитата Сообщение от M128K145 Посмотреть сообщение
Скажи какой именно момент неясен
хорошо..передача значения и передача переменной, чем различаются
0
27.03.2010, 22:42
Genius Ignat
1249 / 787 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
27.03.2010, 22:55 5
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
28
29
#include <iostream.h>
 
void f1(int &ovar);  //может изменить значение переданноей переменной, числа передавать нельзя
void f2(int ivar);   //не может изменить значение переменной.
 
int main(){
int a = 20;
int b = 40;
f1(a);      //int &ovar = a; в функции f1 создаётся ссылка на a
cout<<a;    //значение изменилось: 21
cout<<'\n';
 
f2(b);      //int ivar = b; в функции f2 создаётся переменная и ей присваивается значение из b 
cout<<b;    //значение не изменилось: 40
cout<<'\n';
 
 
 
return 0;
}
//может изменить значение переданноей переменной, числа передавать нельзя
void f1(int &ovar){
ovar++;    //значение переданной переменной изменится так как ovar это ссылка на неё.
}
 
//не может изменить значение переменной.
void f2(int ivar){
ivar++;   //изменение значение локального параметра: переменной, переданная переменная не изменит своего значения.
}
1
AnonymC
1181 / 466 / 87
Регистрация: 23.06.2009
Сообщений: 6,381
Завершенные тесты: 1
27.03.2010, 22:58  [ТС] 6
ну я понял..а что такое копия?для чего он вообще,что за временная копия
0
Genius Ignat
1249 / 787 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
27.03.2010, 23:06 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
void f(int var);
int main(){
 
//int var = int(20);
f(int(20)); /*создается объект к которому не возможен доступ он используется только для инициализации var*/
//--------------------
return 0;
}
void f(int var){
cout<<var<<'\n';
}
2
maxik42
5 / 20 / 3
Регистрация: 22.03.2010
Сообщений: 131
27.03.2010, 23:08 8
Цитата Сообщение от МедведЪ Посмотреть сообщение
объясните мне разницу...и с кодами пожалуйста...думаю передача значений это через ссылки\указатели,а передача переменных-переменных

Добавлено через 2 минуты
у кого есть С++ за 21 день откройте пожалуйста страницу 272 и объясните , прошу а то не доходит
Попробую обьяснить! когда нужно передать переменную по значению передаеться само значение! а когда нужно передать переменную по ссылке тогда передаеться адрес переменной!
Тоесть когда передаеться значение в функцию (не адрес) тогда создаеться только копия той передаваемой переменной в вызываемой функции. тоесть у нас в вызывающей функции переменная с тем значением и в вызываемой также. Здесь переменные не связаны и если переменная измениться в вызываемой функции то это не повлияет на переменную в вызывающей функции.

Теперь по ссылке! тут мы передаем саму ссылку - адрес той одной переменной которая находиться в вызывающей функции. и мы если будем менять ее в вызываемой функции будет меняться и та переменная что находиться в вызывающей функции!

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
main()//вызывающая функция.
{
   int  i=23;
 
   doSome(i);//передаем по значению
   doSome2(&i);//передаем адрес
}
 
doSome(int i)
{
   //тут i локальная переменная с тем же значением переданым. она не влияет на переменную i в main()
   ...i=23;
 
}
 
doSome(int *i)
{
   //тут i указатель на тип int (тоесть он содержит адрес переменной i в main() )
   ...*i=45;//если изменяем тут переменную, i измениться в main()
 
}
надеюсь обьяснил ясно!
2
Genius Ignat
1249 / 787 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
27.03.2010, 23:18 9
То что написано про int(20): в ООП имеет больший смысл, но это объяснять неохото.

Добавлено через 4 минуты
Тем более вечер...
0
AnonymC
1181 / 466 / 87
Регистрация: 23.06.2009
Сообщений: 6,381
Завершенные тесты: 1
27.03.2010, 23:18  [ТС] 10
большое вам спасибо
Цитата Сообщение от Genius Ignat Посмотреть сообщение
То что написано про int(20): в ООП имеет больший смысл, но это объяснять неохото.
ничего,сам прочтуЕсли дойдет конечно...
Цитата Сообщение от maxik42 Посмотреть сообщение
Попробую обьяснить! когда нужно передать переменную по значению передаеться само значение! а когда нужно передать переменную по ссылке тогда передаеться адрес переменной!
Тоесть когда передаеться значение в функцию (не адрес) тогда создаеться только копия той передаваемой переменной в вызываемой функции. тоесть у нас в вызывающей функции переменная с тем значением и в вызываемой также. Здесь переменные не связаны и если переменная измениться в вызываемой функции то это не повлияет на переменную в вызывающей функции.
я думал в эту сторону,но наоборот...все пре пре ясно!!спасибо еще раз за помощь
0
AnonymC
27.03.2010, 23:18  [ТС]
  #11

Не по теме:

Цитата Сообщение от Genius Ignat Посмотреть сообщение
Тем более вечер...
понял намек:rofl:

0
Genius Ignat
1249 / 787 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
27.03.2010, 23:32 12
Завтра напишу пример с классами и большими комментариями.

Добавлено через 10 минут
.......
0
27.03.2010, 23:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2010, 23:32

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

Передача переменной в функцию
Здравствуйте. Подскажите пожалуйста как сделать следующее: есть класс: #pragma once #include...

Передача переменной в массив
Доброе времени суток форумчани, не умею решить вот такую задачу: //там все объявлено и все...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru