Указатели С++

Подскажите нормальную книгу по С++, в которой нормально описаны указатели и операции с ними.

А Керниган чем не угодил? Ну или ЭТО

3 лайка

Читаю. Пока понятно. Ссылка не открывается. Возможно, шалит мой провайдер.

Это шалит сам ресурс (UA). Используйте ВПН

А нормально - это как? Или “ненормально”? Вы прочитали десяток книг и не нашли такую, где бы были понятно описаны указатели?

А что там в общем то описывать ?
Указатель , это объект хранящий адрес другого объекта.
Для изменения значения хранящегося по адресу используется разыменование.

Вся путаница обычно из за двунаправленного использования знака ‘*’ (Астерикс).
Нужно понимать что он используется и для объявления и для разыменовывания указателя.
Первый раз для объявления, все последующие для разыменовывания.
Если к указателю обращаться, напрямую (без разыменовывания), то тогда работать будешь с адресом, а не с тем , что лежит по этому адресу.
Адрес указывает на первый байт объекта.

1 лайк

int *a; //при создании указателя выделяется память в размере требуемом его типу
//зависит от архитектуры в данном случае 2 байта (16 бит)
    

void setup(){
    
}

void loop(){
    *a=25;//при разыменовывании указателя, работаем с тем, что лежит по адресу
    //в данном случае записываем значение 25
    //теперь по адресу 'a' лежит значение 25
}

вопщем, если ты наркоман проклятый, и тебе вдруг понадобился хаш, ты знаешь, что во дворе дома 5 по улице Ленина сидит на лавочке мужик, и тебе надо к нему. Подходишь, и он тебе даёт грязную бумашку, на которой накарябано “кв.103”, идёшь туда и получаешь желаемое. Так вот, указатель - это мужик на лавочке.

если мужика инкрементировать - что получится? :slight_smile:

кв. 104

2 лайка

Закавыка пока в строке

 int* a;

И в чем же там «закавыка»?

можно попробовать порасставлять виртуальные скобки

int * a;
(int*) a    // <a> без звездочки - указатель (int*)
int (*a)   // <*a> со звездочкой - int

неправильно

int *a, b, *c;

You did not clue what I meant, the braces are VIRTUAL :slight_smile:
Скобки использованы ИСКЛЮЧИТЕЛЬНО чтобы отделить логические группы.
А так да, звездочка всегда относится к переменной, а не к типу.