#27. Указатели. Приведение типов. Константа NULL | Язык C для начинающих

preview_player
Показать описание


Указатели для работы с разными типами данных. Присваивание адресов между указателями. Приведение типов между указателями. Предопределенная константа NULL.
Рекомендации по теме
Комментарии
Автор

С 769 осторожно. Поведение будет зависеть от порядка хранения байт в памяти платформы , в Intel x86 это будет Little Endian

sad-wlqk
Автор

Балин, я уже с# учу, дали бы мне курс месяцев 7 назад(когда я учил си по курсам Гоши дударя) я бы учил бы си)

norskiy
Автор

Здраствуйте, спасибо за инфо, хотелось в будущем вин апи

VladLyashko
Автор

Когда курс на степике появится?
ПС: пните когда откроют, спасибо ^_^

saintshell
Автор

8:17 значение - 769, код выполнился за 769 миллисекунд. Совпадение? 🤨

CraNok
Автор

Идёт уже второй урок, так и не понимаю, для чего указатели, без объявления переменной они не работают, при объявлении переменной в памяти итак выделяется место, тогда какую функцию несут указатели? Определить точное место куда мы будем записывать значение? Для подмена типа данных?

Maksim
Автор

Сергей, здравствуйте! может я что-то не уловил, но пока так и не ясен самый главный смысл, т.е. "сакральность" указателей. Ну можем мы работать с ячейкой памяти напрямую через указатель, можем через переменную Или тема указателей еще не закрыта? Если что, заранее извиняюсь за нетерпение))))

andrey_sautenko
Автор

Спасибо большое за эту серию уроков. Можете пожалуйста поделиться тем, как запускается программа для отладки в VSCode, чтобы не компилировать каждый раз через gcc

vkatasonov
Автор

После С будут плюсы? Хотелось бы в таком виде просмотреть курс по Rust

tarzeronone
Автор

18 недоступных видео скрыто. это как?

azatmuhitov
Автор

А можно вопрос, откуда вы учились у Си? Просто после вашего курса я хочу еще почитать литературы, в том числе и Книга Герберта Шилдта "Си, полное руководство, классическое издание", и там можно создать свой ЯП, или мне еще придется читать литературу?

yxoepgm
Автор

Ответ на вопрос чем плохи переменные будет дальше?

donfedor
Автор

Друзья, а как все-таки правильно, нулл или налл ?) И еще, а что за зажигательный музон играет в конце каждого видео? Усидеть на месте, нереально! А видос познавательный, ждем еще.

catsaur
Автор

объясните пожалуйста тупому (6:57) в какой системе счисления 777 = 9 + 256 *3 (запись в байтах 9 3 0 0) и 769 = 1 + 256 *3 (запись в байтах 1 3 0 0). В шестнадцетиричной системе должны быть цифры 777(запись в байтах 0 3 0 9) и 769 (запись в байтах 0 3 0 1). Не могу разобраться

dzvuhnm
Автор

int это же 2 байт илм 16 бит, а увас 4 байта. Как так? .

nacgul
Автор

Почему сразу так не сказать?..Вся тема в нескольких основных тезисах: (извините, я конспект пишу за Вами на английском)
Pointers are designed to write and read data from any memory cells and store theirs addresses with data.
They are denoted witn the sign '*', for example, as
'char *gpt' and divided into the following variable types:
char *gpt; (memory area - 1 byte),
int *gpt; (memory area - 4 bytes),
double *gpt; (memory area - 8 bytes).
The pointers in OSx86 - is allocated 4 bytes of memory;
in OSx64 - is allocated 8 bytes of memory.
Pointer notation construction:
chat d = 10; memory allocation operation for the variable 'd';
char *gpt; declaration of pointer for working with data type 'char';
gpt = &d; assignment operation of value 'd' to pointer 'gpt';
char x = *gpt; value read operation from memory cell of variable 'd';
*gpt = 100; value write operation to memory cell of variable 'd';
short *a, *b, *c; declaration of 3 pointers in one data type.*/

General expression type 'void *' is used to save adresses of variables, but it is not to use with memory cells (*p = 10; : error: invalid use of void expression);
Pointers. Practice problems:
- when pointer refers to an unallocated memory area and
some value is bieng written.
- when memory is in a program dynamically allocated
(by using 'malloc'function) and not freed (memory leak).
Example:
//int arg = 5;
//int *ptr = NULL; //NULL is equivalent to &arg, int *ptr = &arg;
//If(ptr != NULL)
// *ptr = 1;

// А у Вас столько слов на три видео растянуто и в итоге голова кругом и сложнее для понимания ...

alittleprince
Автор

Так и не объяснил для чего нужны указатели, работать с адресом ну да, а какой от этого толк, ни один программист не может толком объяснить, такое ощущение что всем сказали писать эмперсанд арк и все пишут, то-ли не знают то-ли не понимают просто пишут звёздочку и эмперсанд

krdkkos