2011-06-28 3 views
-4

Я знаю, что я задал эти вопросы раньше, но я не получил правильного ответа, они сказали мне пройти через Google, но я не нашел нигде, и я действительно хочу знать, что я не могу его оставить. Концепция указателейуказатели и их операторы

Как GREAT Dennis Ritchie написал код для & и * операторов? Как они работают?

Поскольку я хочу знать код, я хочу сделать свои собственные указатели, а не просто сказать int *p;. Я хочу знать, как работает процесс получения данных с адреса.

Можем ли мы написать код в C? Это возможно без объявления переменной как указателя? С нормальной переменной int p;, можем ли мы сохранить адрес другой переменной и получить ее данные?

Пожалуйста, не говорите использовать:

int main() 
{ 
    int p,a; 
    p=(void *)&a; // dont say these syntax to store the adress 
    *(void *)p=45; // and these syntax to restore the data 
} 

Я знаю, что код, но есть ли другой способ сделать это до конца? Я думал об этом несколько месяцев. На самом деле я работаю на микроконтроллерах, они даже используют символ # в качестве указателя, как это работает? За ним должен быть какой-то код.

+0

FWIW, оригинальный компилятор C был написан на сборке PDP. –

+5

Сначала убедитесь, что ваша орфография и грамматика верны, ваше сообщение правильно отформатировано, и ваш вопрос понятен, мы будем гораздо более вероятно, чтобы помочь вам тогда ... – dtech

+0

Никто не любит этот вопрос? – jack

ответ

0

ниже *p операция называется нагрузки косвенным, и ниже *p=v операция называется магазин косвенным. &a - это просто синтаксис для местоположения a. обе эти операции встроены в машинный код всех современных компьютеров.

+0

благодарю вас, но, наконец, нет способа узнать этот код? – jack

+0

Это различно для всех типов машин, и это не код C, потому что машина не использует код C внутри. В какой-то момент вы больше не можете писать вещи в C, потому что вам нужно объяснить, что это означает на уровне сборки. Нет прямого сопоставления от C к сборке для любой машины. Вот почему у вас есть компилятор C. –

Смежные вопросы