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

Как создать функцию изменяющую значение переменной? - C++

Восстановить пароль Регистрация
 
Damir228
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 2
17.06.2016, 09:10     Как создать функцию изменяющую значение переменной? #1
Насколько я понял функция или возвращает значение,или выполняет какие либо действия,но изменить значение можно только у глобальной переменной.
Как сделать чтобы менялась переменная внутри main?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2016, 09:10     Как создать функцию изменяющую значение переменной?
Посмотрите здесь:

C++ Составьте функцию, изменяющую одномерный массив целых чисел следующим обра-зом: к значению каждого положительного элемента прибавляется его индекс
C++ Как организовать функцию, изменяющую входящий параметр?
FindFirstFileW. Как подставить значение переменной типа string в функцию? C++
C++ Создать макрос обрамляющий кавычками значение переменной
Как передать значение переменной из функции инт в функцию воид? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4281 / 3712 / 1247
Регистрация: 14.04.2014
Сообщений: 14,519
17.06.2016, 09:21     Как создать функцию изменяющую значение переменной? #2
Ссылку передавай.
nstwf
86 / 76 / 30
Регистрация: 19.02.2016
Сообщений: 324
Завершенные тесты: 1
17.06.2016, 09:56     Как создать функцию изменяющую значение переменной? #3
Как сказали выше - через ссылку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
void f(int *f)
{
    *f = 5;
}
void main()
{
    int d = 0;
    f(&d);
    cout << d;
    system("pause");
}
Ну или возвращать из ф-и
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
int f(int f)
{
    f = 5;
    return f;
}
void main()
{
    int d = 0;
    d = f(d);
    cout << d;
    system("pause");
}
Blitzor DDD
12 / 12 / 1
Регистрация: 17.08.2015
Сообщений: 439
17.06.2016, 10:20     Как создать функцию изменяющую значение переменной? #4
Можно так

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int t=0;  //иниц. переменную t нулем
int &a=t; // связали a и t. Теперь любое изменение а отразится на t
 
int set_value(int &a) //в качестве аргумента - ссылка
{
    a=t;    //меняем переменную t
    cout<<t<<endl;
    return t;
}
 
int main( )
{
    cout<<t<<endl;  //выведется 0
    a=5;
    set_value(a);   //поменяли переменную t, выведется 5
 
    return 0;
}
Добавлено через 17 минут
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
int t=0;  //иниц. переменную t нулем
int &a=t; // связали a и t. Теперь любое изменение а отразится на t
 
int set_value(int &a) //в качестве аргумента - ссылка
{
    a=t;    //меняем переменную t
    return t;
}
 
int main( )
{
    cout<<t<<endl;  //выведется 0
    a=5;
   cout<< set_value(a);   //поменяли переменную t, выведется 5
 
    return 0;
}
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,362
Записей в блоге: 4
17.06.2016, 10:38     Как создать функцию изменяющую значение переменной? #5
По-моему, в ветке смешались в одну кучу два понятия: указатели и ссылки.
Указатели были еще в C. Понятия ссылки тогда даже не было.
Ссылки есть только в C++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
void fun1(int *n) {*n=5;} // использование указателя
 
void fun2(int &n) {n=5;}  // использование параметра-ссылки (только C++)
 
int main()
{
    int i;
    i=8;
    fun1(&i); // передача адреса переменной
    cout << i << endl;
    i=8;
    fun2(i);
    cout << i << endl;
    return 0;
}
nstwf
86 / 76 / 30
Регистрация: 19.02.2016
Сообщений: 324
Завершенные тесты: 1
17.06.2016, 10:41     Как создать функцию изменяющую значение переменной? #6
Моя ошибка, я показывал через указатель.
Yandex
Объявления
17.06.2016, 10:41     Как создать функцию изменяющую значение переменной?
Ответ Создать тему
Опции темы

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