новичок вопрос здесь, может ли кто-нибудь дать ответ на вопрос, почему этот цикл не заканчивается? Я переписываю адрес переменной, затем де-ссылку на нее и добавляю ее к ней. По моей логике он должен заканчиваться на 10-м шаге.Почему моя петля не заканчивается?
Спасибо!
#include <iostream>
using namespace std;
int addtoi(int intern);
int main(){
for(int i = 0; i < 10;addtoi(i)){
}
}
int addtoi(int intern){
int *pt;
pt = &intern;
++*pt;
cout << *pt << "\t" << intern << "\n";
return 0;
}
Прежде всего, вы действительно не изменяете значение 'i' в вашем методе' addtoi'. Во-вторых, вам нужно передать 'i' в качестве ссылки или сделать его указателем, чтобы изменения внутри метода отражались вне его. – nem035
Спасибо, я только что понял, что глупая ошибка :) –
Когда вы передаете' i' в ваша функция делает *** копию ***, которую он использует внутри функции. Вам нужно передать * reference * или передать указатель на 'i'. – Galik