Я сделал программу, которая вызывает эту функцию. Я знаю это, потому что «Int Strength был вызван» появляется в окне вывода. Тем не менее, это не изменит значения, которые я говорю это делать.
Я хочу получить целочисленные значения из main (), затем использовать их и вернуть новые значения.
Я использую заголовочный файл, который содержит только «сила» (INT, INT, INT) «
int strength(int a, int s, int i)
{
using namespace std;
cout << "Int Strength has been called" << endl;
a = a + i;
s = s - i;
return a;
return s;
}
Многочисленные ошибки. Во-первых, если вы хотите, чтобы аргументы были изменены (точнее, модификация действует вне области действия функции), вы должны передать значения по ссылке:
int strength(int &a, int &s, int &i)
Во-вторых, вы, кажется, обеспокоены return a; return s;
возвращая два значения. Это не — самый первый return
встретил выход из функции немедленно.
Значения изменяются только внутри функции. Переменные передаются по значению, а не по ссылке.
Используйте ссылки в качестве параметров.
int strength(int& a, int& s, int& i)
Вы передаете по значению. Вам нужно передать указатель в память, выделенную в вызывающей программе, которая содержит данные, которые вы хотите изменить.
void strength(int *a, int *s, int i)
{
using namespace std;
cout << "Int Strength has been called" << endl;
*a += i;
*s -= i;
}
Тогда назовите это так:
a = 1;
s = 2;
i = 3;
strength(&a, &s, i);