Нужны ли парены в этом: & (Array [id])?Отправка указателя элемента # id - PullRequest
1 голос
/ 11 ноября 2011

Если у меня есть массив и я хочу присвоить указатель идентификатору элемента массива, это эквивалентно?

int* hello = &Array[id];

int* hello = &(Array[id]);

Ответы [ 2 ]

4 голосов
/ 11 ноября 2011

Нет, скобки не нужны, и да, эти два эквивалента.Индекс массива имеет более высокий приоритет , чем оператор адреса.

2 голосов
/ 11 ноября 2011

Однако в C это эквивалентно

 int *hello = Array+id;

(при условии, что Array - это массив int -s или указатель на int).

И я бы осмелился сказать, что использование добавления указателя вместо адреса адреса элемента массива более привычно, т.е. более идиоматично, в C (но это вопрос вкуса).

PS.эта эквивалентность неверна в C ++, например, потому что operator + и operator [] могут быть определены пользователем (но не для указателя на int-s).

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