Вы передали указатель по значению.
Указатель внутри test
является копией указателя внутри main
. Любые изменения, внесенные в копию, не влияют на оригинал.
Это может сбить с толку, потому что, используя int*
, вы передаете дескриптор («ссылка», хотя на самом деле ссылка - это отдельная вещь, существующая в C ++) к int
и, таким образом, избегаете копий что int
. Однако сам указатель является самостоятельным объектом, и вы передаете , что , вокруг значения.
(Вы также пытаетесь навести указатель на int
, который является локальным для функции test
. Использование его будет недопустимым.)