Что символ & означает в Objective-C?

Примечание: свойство, вероятно, лучший способ сделать это, посмотрите на другие ответы

Определите __setattr__(self, name, value) и / или __getattr__(self, name): obj.abc -> type(obj).__getattr__(obj, 'abc')

10
задан Jesse Beder 30 October 2009 в 19:02
поделиться

2 ответа

& - это унарный оператор адреса C.

16
ответ дан 3 December 2019 в 16:53
поделиться

То же самое, что и в C.

int *pIntData = (int *)&incomingPacket[0];

В основном это говорит о том, что адрес начала incomingPacket (& incomingPacket [0]) является указателем на int (int *). Локальная переменная pIntData определяется как указатель на int и устанавливается на это значение.

Таким образом:

*pIntData will equal to the first int at the beginning of incomingPacket.
pIntData[0] is the same thing.
pIntData[5] will be the 6th int into the incomingPacket.

Зачем это нужно? Если вы знаете, что данные, которые передаются в потоковом режиме, представляют собой массив целых чисел, это упрощает итерацию по целым числам.

Этот оператор, если я не ошибаюсь, можно было бы также записать как:

int *pIntData = (int *) incomingPacket;
8
ответ дан 3 December 2019 в 16:53
поделиться