Почему значения a и b не меняются в коде C++? Что означает этот код?
Итак, я запускаю этот кусок кода, и я получаю вывод:
3
1,1,1,3
4,4,4,6
7,7,7,6
Что меня смущает, так это второе утверждение "cout", а затем и остальные. Почему вывод для второго оператора "cout" 1,1,1,3. Не изменяется ли значение a и b после функции one()? Мне очень трудно понять, что делает весь этот код, и я был бы признателен за любую помощь! Спасибо!
Может кто-нибудь объяснить мне это шаг за шагом? Отладка не очень помогает
Каков вывод следующего кода C++?
void one(int a, int b){
a = b + 1;
b = a + 2;
}
void two(int& a, int& b){
a = b + 1;
b = a + 2;
}
void three(int& a, int b){
a = b + 1;
b = a + 2;
}
int main() {
int a = 1;
int& b = a;
int* c = &b;
int* d = new int;
*d = a + b + *c;
cout << *d << endl;
one(a, *d);
cout << a << "," << b << ',' << *c << ',' << *d << endl;
two(a, *d);
cout << a << ',' << b << ',' << *c << ',' << *d << endl;
three(*c, *d);
cout << a << ',' << b << ',' << *c << ',' << *d << endl;
delete d;
}