Язык Си с нуля - Урок 57 - оператор запятая, числовые литералы.

preview_player
Показать описание
Это видео для тех, кто еще ни разу не программировал, но прошел предыдущие 56 уроков.

В данном видео:
0:00 вступление
0:25 оператор запятая
4:38 числовые литералы
9:21 домашка
9:57 на этом...

Уроки по теме:

Язык Си с нуля - данный видеокурс предназначен для тех, кто еще ни разу не программировал. Здесь я максимально понятно пошагово обьясняю основы программирования на языке Си. Если хотите научиться программировать на языке Си - пройдите весь курс. Помимо объяснения материала я даю домашку. А после каждых нескольких уроков мы вместе пишем забавные игры!)

Безвозмездная помощь каналу:
VTB - 5368 2900 3162 0349 Антон.


Трек в конце: Silent Partner - Black Vulture
Рекомендации по теме
Комментарии
Автор

Вах Шайтанама!!! О_о... оператор запятая... удивил. =) Спасибо, очень полезное инфо.

BrownAleks
Автор

Если бы ещё уроки про создание игр в этом же плей-листе были бы такими понятными, то ваще был бы класс!!!

weekendshow
Автор

Антон, как тебе идея писать какие нибудь программы вперемешку с уроками? То есть сам придумываешь задачу и решаешь ее с пояснениями, стараясь по максимуму использовать материал из уроков. На любое количество строк (50 - 10000) :)

ЛОСЬНАКРЫШЕ
Автор

5:42 - это очень спорное утверждение, для sizeof() должен использоваться тип данных long unsigned int и спецификаторы типа %ld, %lu

Влад-рео
Автор

Здравствуйте! Экспериментировал с оператором запятая после вашего видео и увидел неожиданный результат: программа печатает "It's INCREDIBLE". Но я до сих пор не понимаю, почему так происходит. Можете, пожалуйста, пролить свет на этот вопрос. Код программы на языке Си прилагаю:

#include <stdio.h>
int main() {
#define a 1, 0
if (a == a) printf("It's OKAY\n");
else printf("It's INCREDIBLE\n");
return 0;
}

emoboy
Автор

Спасибо за урок.
Но при разговоре о литералах не хватает ссылки на справочные данные.
И в принципе таких ссылочек не хватает.
А ведь где-то есть табличка, с указанием всех литералов языка Си и примерами.
И ведь полезно знать ВСЕ литералы.

А вот при самостоятельном поиске суффиксов и числовых литералов языка С - гугль выдает ссылки на С# or on C++, но не Си.

Если автор пользуется справочными данными, то пожалуйста, поделись этими справочными данными.

Ruslan_Sirota
Автор

Тому кто смотрит: одни и те же типы переменных могут иметь разный размер, в зависимости от архитектуры и операционной системы, например long имеет размер 4 байта в 32-64 битном Windows и 32-битных UNIX ОС, и 8 байт в 64-битных UNIX ОС

JohnSmith-mrwp
Автор

Оператор запятая выполняет действия в зависимости от того, какой параметр берёт функция в качестве конечного значения. Это важно, подумайте над этим.
printf("%d\n%d\n", a+=2, a/=2); Здесь в качестве конечного значения функция использует a+=2, поэтому сначала будет выполнено a/=2, то есть справа налево.
printf("%d\n%d\n", (a+=2, a/=2)); А вот так уже будет выполняться слева направо.
А здесь a+=2, a/=2; я не вижу никакой разницы между этим a+=2; a/=2;
Здесь например printf("%d\n%d\n", 1, (a+=2, a/=2, 20)); в качестве конечного значения для второго параметра %d\ функция возьмёт число 20.

Я для себя определил: есть скобки: слева направо арифметические дейстия производятся.
Нет скобок: справа налево арифметические дейстия производятся.
Но это только где в качестве параметров оператор запятая.

Оператор запятая не такой простой оператор.
Но если принять за основу то что я написал, то можно рзобраться.

namename
Автор

Сделайте плиз про {} видос. Как я понял, это объединение в одно выражения типа Воид. Где я на это наткнулся ? Когда я хотел в тернарный оператор всунуть что-то типо a ? goto c : goto b; меня послали нахрен, ибо это "оператор", а не выражение. Точно такая же ситуация и с return, хотя в этом случаи можно сделать так: return a ? 1 : 2;
Короче, как оказалось, можно это дерьмо так сделать было a ? ({goto c;}) : ({goto b;}); И я никак не могу понять, почему эт работает и что вообще тут делают фигурные скобки. вопрос безсмысленный, но инфы нарыть не получается никак. Даже не спрашивайте зачем всё это, я упарываюсь в изотерику

little-endian
Автор

Интересные фишки но лучше Так не делать потому как это не очевидные вещи

kisavoron
Автор

Обманываешь! Стандарт Си не регламентирует порядок вычисления параметров при передаче их в функцию, и это является побочным эффектом...

ifilipovichif