&
является оператором ссылки. Возвращает адрес памяти переменной, которой предшествует. Хранение указателей адресов памяти . Если вы хотите «сохранить что-то в указателе», вы можете разыменовать это с помощью оператора *
. Когда вы это сделаете, компьютер будет искать адрес памяти, содержащийся в вашем указателе, который подходит для хранения вашего значения.
char *pc; // pointer to a type char, in this context * means pointer declaration
char letter = 'a'; // a variable and its value
pc = &letter; // get address of letter
// you MUST be sure your pointer "pc" is valid
*pc = 'B'; // change the value at address contained in "pc"
printf("%c\n", letter); // surprise, "letter" is no longer 'a' but 'B'
Когда вы используете myArray[0]
, вы получаете не адрес, а значение, поэтому люди использовали &myArray[0]
.