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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 43, средняя оценка - 4.74
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,340
Завершенные тесты: 1
#1

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

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

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

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

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

Передача значения переменной в IplImage - C++
Есть данные в файле с названием изображений которые нужно рассматривать. Данные названия получаю таким образом: std::string file1,file2; ...

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

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

Передача значения переменной-члена из класса в функцию - C++
Добрый день, имеется класс: class ZernPole{ public: ZernPole(int Zerno) { zpZerno=Zerno;...

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

11
M128K145
Эксперт С++
8293 / 3513 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
27.03.2010, 21:44 #2
МедведЪ, что именно непонятно? Там пример простейшего ацессора. Скажи какой именно момент неясен
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
27.03.2010, 22:01 #3
МедведЪ:
Не читай книги вечером тогда активность ГМ ниже, следовательно и доходит до понимания дольше.
1
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,340
Завершенные тесты: 1
27.03.2010, 22:42  [ТС] #4

Не по теме:

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


Цитата Сообщение от M128K145 Посмотреть сообщение
Скажи какой именно момент неясен
хорошо..передача значения и передача переменной, чем различаются
0
Genius Ignat
1236 / 774 / 44
Регистрация: 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
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,340
Завершенные тесты: 1
27.03.2010, 22:58  [ТС] #6
ну я понял..а что такое копия?для чего он вообще,что за временная копия
0
Genius Ignat
1236 / 774 / 44
Регистрация: 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
4 / 19 / 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
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
27.03.2010, 23:18 #9
То что написано про int(20): в ООП имеет больший смысл, но это объяснять неохото.

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

Не по теме:

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

0
Genius Ignat
1236 / 774 / 44
Регистрация: 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
Привет! Вот еще темы с ответами:

Передача переменной в массив - C++
Доброе времени суток форумчани, не умею решить вот такую задачу: //там все объявлено и все хорошо for(i=0;i&lt;n;i++) { ...

Передача переменной в функцию - C++
Здравствуйте. Подскажите пожалуйста как сделать следующее: есть класс: #pragma once #include &quot;Point2d.h&quot; #include &lt;vector&gt; ...

Передача переменной из функции в функцию - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; // работа с файлами #include &lt;iomanip&gt; // манипуляторы ввода/вывода #include &lt;string&gt; using...

Передача переменной в другую программу - C++
Подскажите примеры реализации. Незнаю там ли тему создал.. Необходимо из dll библиотеки на c++ передать строковую переменную в c# wpf...


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

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

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