Читать интересную книгу Язык Си - руководство для начинающих - M. УЭИТ

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 2 3 4 5 6 7 8 9 10 ... 98

/*простая программа*/:

Использование комментариев облегчает процесс понимания ва шей программы любым программистом (включая вас самих) Большим удобством при написании комментариев является воз можность располагать их на той же строке, что и операции, кото рые они объясняют. Длинный комментарий может помещаться на отдельной строке или даже занимать несколько строк. Все, что на ходится между символом, указывающим на начало комментария /*, и символом, указывающим на его конец */, игнорируется компилятором, поскольку он не в состоянии интерпретировав язык, отличающийся от Си.

{ и }:

Фигурные скобки { } (и только они) отмечают начало и конец тела функции. Для этой цели не используются ни круглые (), ни квадратные [] скобки. Фигурные скобки применяются также для того, чтобы объединить несколько операторов программы в сегмент или "блок". Если вы знакомы с такими языками, как Паскаль или Алгол, вы легко сообразите, что такие скобки аналогичны операторам begin и end в этих языках.

int num;:

"Оператор описания переменной" — одно из важнейших средств языка Си. Как уже упоминалось выше, в нашем простом пример вводятся два понятия. Первое — использование в теле функции "переменной", имеющей имя num; второе — с помощью слова int объявляется, что переменная num принимает целые значения. Точка с запятой в конце строки указывает на то, что в ней содержится оператор языка Си, причем этот символ является здесь частью оператора, а не разделителем операторов, как в Паскале.

Слово int служит "ключевым словом", определяющим один из основных типов данных языка Си. Ключевыми словами называются специальные зарезервированные слова, используемые для по строения фраз языка; список ключевых слов вы можете найти в приложении в конце книги.

В языке Си все переменные должны быть объявлены. Это означает, что, во-первых, в начале программы вы должны привести список всех используемых переменных, а во-вторых, необходимо указать "тип" каждой из них. Вообще объявление переменных считается "хорошим стилем" программирования.

Здесь вы можете задать три вопроса. Первый: каким образом надо выбирать имена? Второй: что такое типы данных? Третий: зачем вообще требуется объявлять переменные? Ответы на первый и третий вопросы приведены ниже и отмечены вертикальной линейкой голубого цвета.

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

Выбор имени

Мы предполагаем, что вы используете осмысленные обозначения переменных. Имя переменной может содержать от одного до восьми символов. (Фактически вы можете использовать и большее их число, но компилятор пропустит же символы, начиная с девятого. Поэтому имена shakespeare и shakespencil считались бы одинаковыми, поскольку первые восемь букв у них совпадают.) Для образования имени переменной разрешается использовать строчные и прописные буквы, цифры и символ подчеркивания, считающийся буквой. Первым символом должна быть обязательно буква.

Правильные имена Неправильные имена wiggly $Z^** cat1 1cat Hot_Tub Hot-Tub _kcaB   don' t

В библиотечных процедурах часто используются имена, начинающиеся с символа подчеркивания: Это делается в предположении, что пользователи вряд ли выберут имена, начинающиеся с этого символа, поэтому маловероятно, что одно из них будет случайно выбрано для обозначения другого понятия. Старайтесь ив использовать имен, начинающихся с символа подчеркивания, и вам удастся избежать взаимопересечений с множеством библиотечных имен.

Четыре довода в пользу объявления переменных

1. Сведение всех операторов объявления переменных в начало программы облегчает понимание ее смысла. Это особенно справедливо, если вы даете переменным осмысленные имена (например, taxrate [налоговый тариф] вместо r) и, кроме того, включаете в программу комментарии для объяснения того, что обозначают переменные. Документирование программы подобным образом является одним из основных признаков хорошего стиля программирования.

2. Размышление о том, что поместить в секцию объявления переменных, побуждает спланировать программу перед тем, как погрузиться в ее написание. Это эквивалентно получению ответов на вопросы: какая информация необходима программе при запуске? Какую выходную информацию хотелось бы получить?

3. Объявление переменных позволяет избежать одной из наиболее коварных и труднообнаруживаемых ошибок — неправильно написанных имен. Например, предположим, что программируя на некотором языке, вы использовали оператор

B0ZO = 32.4,

а дальше в программе вы ошибочно написали

ANS = 19.7* BOZO — 2.0

случайно заменив цифру 0 буквой О. Вследствие этого в программе появится новая переменная с именем BOZO, и будет использовано какое-то ее значение (возможно нуль или какой-то "мусор"). В результате переменная ANS получит неправильное значение, и вы, возможно, потратите много времени, пытаясь найти причину. Это не может произойти при программировании на языке Си (если только вы не объявили две переменные со столь похожими именами), поскольку компилятор сразу выдаст сообщение об ошибке, как только встретит в программе необъявленную переменную с именем BOZO.

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

num = 1;:

"Оператор присваивания" является одним из основных средств языка. Приведенную выше строку программы можно интерпретировать

РИС. 2.2. Оператор присваивания — один из основных операторов.

так: "присвоить переменной num значение 1". Дело в том, что, согласно оператору в четвертой строке программы, переменной num была выделена ячейка памяти, и только теперь в результате выполнения оператора присваивания переменная получает свое значение. При желании мы могли бы присвоить ей другое значение — вот почему имя num обозначает переменную. Отметим, что этот оператор тоже заканчивается точкой с запятой.

printf (" Я простая");

printf ("вычислительная машина. n");

printf ("Мое любимое число %d, потому что оно самое первое.n", num);

Во всех этих строках используется стандартная функция языка Си, называемая printf(); скобки указывают на то, что мы, конечно же, имеем дело с функцией. Строка символов, заключенная в скобки, является информацией, передаваемой функции printf() из нашей главной функции [main()].

Такая информация называется "аргументом"; в первом случае аргументом является строка "Я простая". Возникает вопрос: что функция printf() делает с этим аргументом? Ответ довольно очевиден: она просматривает все символы, содержащиеся между кавычками, и выводит их на экран терминала.

РИС. 2.3. Вид функции printf () и ее аргумента.

Данная строка дает нам пример того, как мы "вызываем" функцию или "обращаемся" к ней, программируя на языке Си. Для этого требуется только указать имя функции и заключить требуемый аргумент (или аргументы) в скобки. Когда при выполнении ваша программа "достигнет" этой строки, управление будет передано указанной функции [в данном случае printf()]. Когда выполнение функции будет завершено, управление вернется обратно в исходную ("вызывающую") программу.

Что можно сказать по поводу следующей строки программы? В ней имеются символы n, которые не появились на экране. В чем дело? Эти символы служат директивой начать новую строку на устройстве вывода. Комбинация n на самом деле представляет собой один символ, называемый "новая строка". Его смысл кратко формулируется так: начать вывод новой строки с самой левой колонки. Другими словами, с помощью этого символа осуществляются те же функции, что и с помощью клавиши [ввод], имеющейся на обычном терминале. Но вы можете сказать, что комбинация n выглядит, как два символа, а не как один. Вы, конечно же, правы, но просто по смыслу они представляют собой один символ, для которого не существует соответствующей клавиши на клавиатуре. Возникает вопрос: почему для этой цели нельзя использовать клавишу [ввод]? В ответ скажем, что это может быть интерпретировано как некоторая директива вашему текстовому редактору, а не как команда, которая должна быть помещена в память ЭВМ. Другими словами, когда вы нажимаете клавишу [ввод], редактор прекращает заполнение текущей строки, с которой вы в данный момент работаете, и начинает новую строку, оставляя старую неоконченной.

1 2 3 4 5 6 7 8 9 10 ... 98
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Язык Си - руководство для начинающих - M. УЭИТ.

Оставить комментарий