#50. Ключевые слова static и extern | Язык C для начинающих

#50. Ключевые слова static и extern | Язык C для начинающих

selfedu

1 год назад

6,208 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@andredru4278
@andredru4278 - 20.01.2024 12:15

Спасибо. Уровень!

Ответить
@user-xm5zl9up4r
@user-xm5zl9up4r - 18.01.2024 08:26

спасибо

Ответить
@user-cm1ri1sn2u
@user-cm1ri1sn2u - 28.11.2023 09:40

Сергей, помогите разобраться, почему если до main объявить массив и указатель на него, то в main возможно менять адрес указателя, а если этот указатель на глобальный массив объявить в main, но со словом static, то уже не можем? Почему позволяется менять адрес указателя, объявленного в глобальной области, если по идее, всё что объявлено вне main по умолчанию является статическим?

Вот так работает.
int a[] = {4,5,6};
int* p = a;

int main()
{
p +=1;
printf("%d", *p);

return 0;
}

А вот так не позволяет изменить адрес p.
int a[] = {4,5,6};

int main()
{
static int* p = a;

p +=1;
printf("%d", *p);

return 0;
}

Ответить
@kyami8718
@kyami8718 - 17.09.2023 10:27

А как работает например volatile?

Ответить
@citizenfour2951
@citizenfour2951 - 08.08.2023 00:44

Спасибо за урок.
1. В стандарте языка Си нет определений понятий "глобальная" и "локальная" переменная. Я думаю эти два термина ненаучны. Какое настоящее название?
2. Я правильно понял, что это есть три характеристики переменной: класс хранения (где выделить память), время жизни (когда деаллоцировать), и область видимости (откуда есть доступ)?

Ответить
@anvarx1
@anvarx1 - 14.06.2023 14:52

Отличный урок !!! Спасибо за изложения высшего класса. Отслеживаю весь ваш вклад в сообщество изучающих программирование в Ютубе.

Ответить
@GH-xw1rd
@GH-xw1rd - 12.06.2023 18:39

здравствуйте, у вас будут курсы по аналитике данных?

Ответить
@kobatrader7375
@kobatrader7375 - 11.06.2023 17:12

Хотел увидел уроки по котлину в сравнении с пайтоном, чтоб преподавалрсь в сравнении.
И тот и тот язык очень лаконичный.

Ответить
@kobatrader7375
@kobatrader7375 - 11.06.2023 17:01

Когда вернётесь к урокам по Пайтону?

Ответить
@weerbox
@weerbox - 11.06.2023 15:43

"в прототипе функции имена переменных можно опускать, т.к. для компилятора это не имеет никакого значения"
Да, но как говорится - есть нюанс.
Если в функции в качестве параметров используется двумерный массив переменной длины.
Например:
void funct(int n, int ar[][n])
и если в прототипе такой функции удалить имена параметров
void funct(int, int[][])
то будет ошибка компиляции, т.к. компилятор не сможет определить размерность массива.
Поэтому для этого существует такая форма записи прототипа:
void funct(int, int[][*])

Ответить
@weerbox
@weerbox - 11.06.2023 13:32

Подушню. На самом деле ключевое сдово static не влияет на область видимости, т.к. никакой глобальной области видимости в Си нет🤪 (есть область видимости - блока, прототипа функции, функции, файла/единицы трансляции). А влияет на класс хранения, меняя у переменных определенных в блоке продолжительность хранения с автоматической на статическую, оставляя область видимости в пределах блока, и отсутствие связывания, а у переменных определенных вне функций - меняет внешнее связывание на внутренее, оставляя область видимости в пределах файла, и статическую продолжительность хранения.

Ответить
@vladis..
@vladis.. - 11.06.2023 12:08

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

Ответить
@vladimirastrelin1719
@vladimirastrelin1719 - 11.06.2023 11:07

В Linux int var_main так же как и static var_st обе переменные будут равны нулю. В Windows int var_main выдаст "мусор". Спасибо огромное за урок ! Пояснение на высшем уровне.

Ответить
@JohnSmith-yr7ih
@JohnSmith-yr7ih - 11.06.2023 10:03

Должен ли я изучать язык программирования C перед изучением C++?
C++ мне нужен для изучения Unreal Engine

Ответить