Запишите обозначение массива как указатель - PullRequest
2 голосов
/ 24 октября 2010

Вопрос &str[2], если я напишу str+2, тогда он даст адрес и его логическое значение, но где я использовал в нем обозначение указателя?

Стоит ли мне писать &(*(str+2))?

Ответы [ 2 ]

4 голосов
/ 24 октября 2010

Вы можете использовать либо

&str[2]

или

(str + 2)

Оба они эквивалентны.

3 голосов
/ 24 октября 2010

Это арифметика указателя.Поэтому, когда вы упоминаете массив str или &str, вы ссылаетесь на базовый адрес массива (например, в printf), то есть адрес первого элемента в массиве str[0].

С этого момента каждый приращения выбирает следующий элемент в массиве.Так что str[1] и (str + 1) должны дать вам одинаковый результат.

Также, если у вас есть num [] = {24, 3}

, тогда num[0] == *(num + 0)== *(0 + num) == 0[num]

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