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

Присвоение значения переменной из функции - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
10.03.2010, 18:40     Присвоение значения переменной из функции #1
Доброго времени суток!!!
Например в Pascal можно так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure myinc(var a:integer);
begin
   a:=a+1;
end;
 
begin
readln(w);
//в программе указываю в параметрах процедуры переменную, значение которой процедура изменяет
myinc(w);
write(w);
readln;
т.е что бы функция не возвращала значение, а изменяла значение указанной в параметрах переменной

Как то же самое сделать на c++?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
10.03.2010, 18:43     Присвоение значения переменной из функции #2
//Первый вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
 
void func(int *a){
*a+=10;
 
}
 
int main(){
int w = 20;
func(&w);
cout<<w;
 
return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Второй:
#include <iostream.h>
 
void func(int &a){
a+=10;
 
}
 
int main(){
int w = 20;
func(w);
cout<<w;
 
return 0;
}
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
10.03.2010, 18:50  [ТС]     Присвоение значения переменной из функции #3
А чем они отличаются (* и &)?
smithy69
17 / 16 / 1
Регистрация: 06.11.2009
Сообщений: 167
10.03.2010, 18:54     Присвоение значения переменной из функции #4
первое это указатель, который хранит адрес по которому находится переменная.
а & - это адрес переменной, то есть можно написать так
C++
1
2
3
int *p; // создаём указатель
int a;
p=&a; //инициализируем указатель адресом на переменную а
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
10.03.2010, 18:56  [ТС]     Присвоение значения переменной из функции #5
Разобрался, спасибо!
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
10.03.2010, 19:09     Присвоение значения переменной из функции #6
А второе передача по ссылке, по ссылке не надо применять взятие адреса при вызове(&).
И так же не надо делать разадресацию(*) для доступа к величине.
Ссылка автоматически разадресуется.
Yandex
Объявления
10.03.2010, 19:09     Присвоение значения переменной из функции
Ответ Создать тему
Опции темы

Текущее время: 09:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru