В чем разница между * variablename и & variablename - PullRequest
0 голосов
/ 12 марта 2012

В Objective C, C и других поддерживаемых указателем языках, в чем разница между * variablename и & variablename. Разве это не то, что оба содержат адрес?

Ответы [ 3 ]

5 голосов
/ 12 марта 2012
&variablename 

Содержит адрес расположения указателя.

*variablename

Возвращает значение, которое хранится в этом адресе памяти.

Вот картинка, чтобы лучше понять enter image description here

Указатель ourPointer содержит адрес целочисленной переменной. Чтобы получить значение этого целого числа, мы используем * перед именем нашего указателя * ourPointer, и оно дает нам значение, сохраненное в адресе, который он содержит.

3 голосов
/ 12 марта 2012

*variablename указывает на содержимое указателя, учитывая, что 'variablename' является указателем.Тогда как &variablename указывает на адрес имени переменной.

&variablename может применяться к обычным переменным, а также к указателям, тогда как *variablename может применяться только к указателям.

0 голосов
/ 12 марта 2012

int * a;// Переменная a указывает на адрес целого числа

int & a;// Переменная a является ссылкой на другое целое число

ссылка Ссылка против указателей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...