Да, когда вы впервые объявляете указатель, вы можете указать адрес памяти. Поскольку вы объявляете его как указатель, вы используете оператор *
. Но повсюду, *pA
означает получение значения, на которое ссылается этот указатель (а не фактический адрес). Это немного странно, но вы привыкаете к этому.
Итак, вы можете сделать это:
int a;
int *pA = &a;
и вы можете сделать это:
pA = &a;
Но вы не можете сделать:
*pA = &a;
Потому что это говорит: «сделайте значение, указанное pA
=, равным значению a».
Однако вы можете сделать это:
*pA = a;
И именно так вы устанавливаете значение, на которое указывает pA. Надеюсь, это несколько ясно.