#28. Долгожданная адресная арифметика | Язык C для начинающих

  Рет қаралды 6,968

selfedu

selfedu

Күн бұрын

Пікірлер: 23
@МарусяКарташова-з3э
@МарусяКарташова-з3э 6 ай бұрын
Не зря студенты просыпаются в холодном поту от этой темы. Она не так проста. Спасибо вам за хорошее объяснение
@AlSlonex123
@AlSlonex123 Ай бұрын
5:04 - В начале мне немного была непонятна конструкция: short *ptr = ar; Как оказалось, ar, &ar и &ar[0] возвращают указатель на один и тот же адрес. Т.е. как я понимаю в Си переменная массива сразу возвращает указатель на него, что логично. int ar[10]; int *arr_p_noamp = ar; int *arr_p_amp = &ar; int *arr_p_0 = &ar[0]; int *arr_p_3 = &ar[3]; printf("arr_p_noamp: %p, arr_p_amp: %p, arr_p_0: %p, arr_p_3: %p, ", arr_p_noamp, arr_p_amp, arr_p_0, arr_p_3); >>arr_p_noamp: 0000001f93bff680, arr_p_amp: 0000001f93bff680, arr_p_0: 0000001f93bff680, arr_p_3: 0000001f93bff68c,
@familmamedov6755
@familmamedov6755 7 ай бұрын
Спасибо за видео, как всегда очень доходчиво. Но хотелось бы услышать объяснения понятия порядка байтов (big-endian, little-endian ).
@alekskapitonov2738
@alekskapitonov2738 7 ай бұрын
СПАСИБО.
@yazmeyaa
@yazmeyaa 5 ай бұрын
Перед твоим примером пробовал самостоятельно сделать задачу, получилось тоже интересно, как мне кажется) int a = 476789; char *ptr = (char *)&a; for (int i = 0; i < sizeof(a); i++) { printf("byte #%d = %u ", i, *(ptr + i)); } return 0;
@AlekzzzR
@AlekzzzR 7 ай бұрын
Хорошее объяснение. Но на 10:22, я число g написал бы в шеснадцатиричном виде и спецификатор у printf указал бы %x. Тут ещё пришлось бы к месту упоминание про lite/big-endian, а то у некоторых по этому поводу, при сетевом программировании, например, возникает недоумение. Сам иногда туплю :)
@intelektum
@intelektum 7 ай бұрын
По мне в такой ситуации проще memcopy использовать, он сразу число разобет на байты и запишет их в массив. Ну или через сдвиг получить нужный байт из многобайтного числа, если это нужно.
@andrewbeliaev8210
@andrewbeliaev8210 7 ай бұрын
Супер!
@AlSlonex123
@AlSlonex123 Ай бұрын
Можно вопрос? Какой плюс в инкременте *ptr++ а не в оставлении ptr в оригинале и динамическом добавлении смещения по "i" ? for(int i = 0; i< sizeof(int);i++) { // printf("%d ", *ptr++); //указатель на начало int смещается, мы должны отслеживать 2 инкремемнта printf("%d ", *(ptr+i)); //ptr всегда указывает в начало, мы динамически берем необходимый байт из int. }
@vkusno-sitno
@vkusno-sitno Ай бұрын
Скажите, а при префиксной форме инкримента ptr в цикле, конечным числом была 3-ка. Это следующее значение, какойто переменной в памяти?
@nightwitch698
@nightwitch698 16 күн бұрын
получается () и ++ имеют приоритет перед * ?
@selfedu_rus
@selfedu_rus 16 күн бұрын
да
@loxloxov1263
@loxloxov1263 7 ай бұрын
Обновление старого ролика?
@selfedu_rus
@selfedu_rus 7 ай бұрын
да, была ошибка при объяснении разности указателей
@allallall2321
@allallall2321 7 ай бұрын
🎉🎉🎉
@indominusmonster6433
@indominusmonster6433 4 ай бұрын
Вопрос: что быстрее работает: указатели или переменные?
@selfedu_rus
@selfedu_rus 4 ай бұрын
с грамотной компиляцией - без разницы (но еще зависит от конкретной реализации самой программы)
@ggez-nr8oi
@ggez-nr8oi 4 ай бұрын
Интересно где учился Сергей ?
@selfedu_rus
@selfedu_rus 4 ай бұрын
жизнь учила )
@ggez-nr8oi
@ggez-nr8oi 4 ай бұрын
@@selfedu_rus Круто!
@juniorrokudevelopertutoria3734
@juniorrokudevelopertutoria3734 13 күн бұрын
Не все так просто. Просто совсем не все.
@nRADRUS
@nRADRUS 7 ай бұрын
10:50 хаха, лучше бы пример делать с беззнаковыми )
@ВладиславГришин-ш7ш
@ВладиславГришин-ш7ш 2 ай бұрын
почему так канал называется? если челу неясно как работает электроника процессора, то ему в программировании делать нечего.
Мясо вегана? 🧐 @Whatthefshow
01:01
История одного вокалиста
Рет қаралды 7 МЛН
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 50 МЛН
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 17 МЛН
Правильный подход к детям
00:18
Beatrise
Рет қаралды 10 МЛН
Адреса и указатели в Си. Адресная арифметика
27:47
Тимофей Хирьянов
Рет қаралды 167 М.
Задача из Собеседования на 160,000 Евро в Год
13:27
Саша Лукин
Рет қаралды 1,1 МЛН
Мясо вегана? 🧐 @Whatthefshow
01:01
История одного вокалиста
Рет қаралды 7 МЛН