Почему функция ничего не меняет объект?Может ли функция ничего не делать, чтобы изменить объект?
У меня есть следующий код:
void sample(SList a)
{
cout << "\nIn Function";
a.print();
}
int main()
{
srand(500);
int total = 10;
SList llist;
for(int i = 0; i < total; i++)
{
llist.add_head(rand() % 100);
}
llist.print();
llist.print();
sample(llist);
llist.print();
return 0;
}
Выход есть:
70 69 14 3 18 71 70 17 57 98
70 69 14 3 18 71 70 17 57 98
In Function
70 69 14 3 18 71 70 17 57 98
0 34365728 34365696 34365664 34365632 34365600 34365568 34365536 34365504 34365472
Мой вопрос заключается в том, что функция sample
, которая не имеет никакого отношения, связанные с SLIST, меняется SLIST. Как это делается? SList - это отдельный список.
Я думаю, что это как-то связано с передачей по значению. Было бы здорово, если кто-то покажет мне то, о чем я не знаю.
EDIT: Ответ на титульный вопрос будет да. Посмотрите на ответ.
Да! Понял. Спасибо! –