Ошибка: метка используется, но не определена при использовании оператора && [закрыто]

int main()
{
        int i = 0;
        int *p = &i;
        int *q = &&i;
        return 0;
}

При компиляции с помощьюgcc наLinuxЯ получаю ошибку

addr.c: In function ‘main’:
addr.c:6:2: error: label ‘i’ used but not defined

Почему лечит компиляторint i какlabel а не целое число? Когда мы используем?&& operator

РЕДАКТИРОВАТЬХорошо, я могу немного понять ответы, но не могли бы вы объяснить приведенное ниже определение макроса изарка / рука / включить / ассемблера / processor.h», Это неговорит что-нибудь оlabel, но комментарий говорит, что он может вернуть ""program counter

/*
 * Default implementation of macro that returns current
 * instruction pointer ("program counter").
 */
#define current_text_addr() ({ __label__ _l; _l: &&_l;})

Ответы на вопрос(3)

Ваш ответ на вопрос