Ошибка в учебнике ? - страница 2

 
а чей учебник то?
 
Korey писал (а) >>
а чей учебник то?

Сергея Ковалёва

 
ну тогда БОЛЬШОЙ совет автору ветки:
НЕ ссорьтесь а вникайте усерднее, таких "ошибок" в МТ-4 еще....... долгий путь))))
 

Вот так, отвлечёшься на секунду - уже скандальчик.

Давайте все сбавим оброты.

--

По существу. О видах переменных написано здесь: Виды переменных

Переменная, о которой идёт речь, указана в коде как статическая (static)

Общий смысл статических переменных в том, что они не теряют своё значение по окончании исполнения функции ( в отличие от обычных переменных, которые теряют).

Обычные переменные получают новое значение всякий раз при инициализации.

А статические переменные инициализируются один раз - при первом исполнении строки кода, в которой указана инициализация.

Статические переменные удобно использовать, например, как счётчик количества обращений к функции.

 
SK. писал (а) >>

Вот так, отвлечёшься на секунду - уже скандальчик.

Давайте все сбавим оброты.

--

По существу. О видах переменных написано здесь: Виды переменных

Переменная, о которой идёт речь, указана в коде как статическая (static)

Общий смысл статических переменных в том, что они не теряют своё значение по окончании исполнения функции ( в отличие от обычных переменных, которые теряют).

Обычные переменные получают новое значение всякий раз при инициализации.

А статические переменные инициализируются один раз - при первом исполнении строки кода, в которой указана инициализация.

Статические переменные удобно использовать, например, как счётчик количества обращений к функции.

Зачем, тогда, нужно явное присваивание нулю ? С какой целью ?

Ведь, если, при следующем обращении к функции это присваивание уже не будет иметь значение,

зачем тогда это делать ? Тем более, что присваивается 0.

Если бы присваивалось, например, -1 или 5, и вопросов бы не возникло.

 
Kub писал (а) >>

Зачем, тогда, нужно явное присваивание нулю ? С какой целью ?

Ведь, если, при следующем обращении к функции это присваивание уже не будет иметь значение,

зачем тогда это делать ? Тем более, что присваивается 0.

Если бы присваивалось, например, -1 или 5, и вопросов бы не возникло.

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

инициализируется этим значением, если не указано другое, но так как это учебник то видимо

это зделано лиш для того, чтоб лучше было понать (   или запутать :)   ).

 
Kub писал (а) >>
Зачем, тогда, нужно явное присваивание нулю ? С какой целью ?
Это хороший тон. Это хороший стиль. Это хорошая привычка. Явная инициализация переменной при её создании. Потому что неинициализированная переменная не обязана быть равной нулю. Она может "случайно" принять любое значение. В том числе и такое, которое приведёт к труднонаходимой ошибке в программе. Это приходит с опытом, с шишками.
 
Kub писал (а) >>

Зачем, тогда, нужно явное присваивание нулю ? С какой целью ?

Ведь, если, при следующем обращении к функции это присваивание уже не будет иметь значение,

зачем тогда это делать ? Тем более, что присваивается 0.

Если бы присваивалось, например, -1 или 5, и вопросов бы не возникло.

Игорь прав. Такой подход является нормой, к которой нужно привыкнуть.

Обычно инициализация нулём выполняется для явного обозначения исходного ("пустого") счётчика.

Например, счётчик может быть написан так (обычно такой код указывают в первых строках тела функции):

statiс int Cnt = 0;
Cnt++;

При самом первом входе в функцию, содержащую такой код, будет выполнена инициализация нулём статической переменной Cnt.

В следущей строке вычислится значение, равное количеству обращений к этой функции (при первом обращении Cnt будет равно 1).

При каждом следующем обращении инициализация статической переменной выполняться не будет, а значение Cnt после окончания исполнения функции будет соответствовать количеству вызовов функции на исполнение.

 

Я бы посоветовал разделить задачи:

1. Для изучения особенностей MQ4 - учебник (написанный всеми уважаемым SK), справка по F1.

2. Для изучения теории языка С - классиков, например: Кнут "Искусство программирования" в трех томах.

 
Kub писал (а) >>

Во первых разбираюсь очень давно.

Во вторых "Ошибка в учебнике ???????" с вопросительным знаком.

В третьих есть просьба "Поясните, кому не лень. Спасибо! "

В четвертых обозначенные вами вопросы кому надо заданы.

Ну что еще надо сделать, чтобы не нарваться на оскорбление ПРОГРАММИСТА ??????????????

1. Важно не то как давно Вы с чем-то "разбираетесь", а разобрались с этим или нет.

2. KimIV ответил Вам по существу.

Причина обращения: