Программирование на языке C для начинающих: Печать значений переменных

В этом уроке Вы познакомитесь с тем, что такое переменная и как можно напечатать значение переменной на экране.

Объявление переменной

Разберемся что такое переменная. Как можно догадаться из ее названия, переменная это нечто, что может меняться. В программировании принято называть переменными ячейки памяти, которым можно изменить значение. Каждая переменная имеет имя и тип

Имя переменной это идентификатор, при помощи которого Вы можете к этой переменной обращаться, то есть, читать и записывать ее значение.

А тип переменной указывает какого вида значения Вы можете в этих ячейках разместить.

Для того чтобы создать переменную Вы должны объявить ее тип и значение. Например, таким образом:

int a;

Здесь мы объявили переменную с именем ‘a’, и типом ‘int’. Точка с запятой в конце обязательна. При объявлении переменной в языке C всегда сперва указывается тип переменной, а затем, ее имя.

После того, как переменная объявлена, мы можем этой переменной присвоить значение. Например, так:

a = 13;

Точка с запятой в конце данного выражения так же обязательна. Теперь в переменной ‘a’ записано значение 13Присвоить переменной значение можно было и сразу при объявлении переменной. Например, так:

int a = 5;

Печать значения переменной на экране

Теперь мы можем прочитать значение этой переменной. Например, напечатать это значение в консоли. Это можно сделать следующим образом:

printf("%d", a);

Как Вы уже, наверное, догадались, точка с запятой в конце строки также обязательна.

При печати можно было пользоваться более сложным форматированием, например, так:

printf("a=%d\n", a);

Практическое задание:

  • Откройте исходный текст в IdeOne: http://ideone.com/BwduQH.
  • Сделайте форк.
  • Запустите и посмотрите, что получилось в результате.

Получиться должно было следующее: в окне stdout вы увидели Ваше число в виде:

a=5

Тип int

Простейший тип переменных, который часто используется это тип int. Разберемся с ним. 

Название типа int это сокращение от слова integer, то есть целый или целочисленный. То есть, хранить в таких ячейках можно только целые числа. На самом деле, в языке C есть довольно простые, но, возможно, не всегда очевидные правила по которым не целое (вещественное) число обычно незаметно для Вас может быть преобразовано в целое. Но, разумеется, с потерей дробной части. Причем, дробная часть будет просто отброшена. Не будет выполнено преобразование целого числа по математическим или бухгалтерским правилам округления чисел.

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

Практическое задание:

  • Задайте переменной ‘a’ значение 13.1
  • Подумайте, что Вы ожидаете увидеть теперь в результате?
  • Выполните и посмотрите результат, сравните его с Вашим ожиданием.
  • Задайте переменной ‘a’ значение 5.7
  • Аналогично предыдущим пунктам, посмотрите, что у Вас получилось.

Примечание: в большинстве языков программирования для разделения целой и дробной части в исходном тексте принято использовать символ ‘точка’, назависимо от того, какой символ принято использовать в качестве такого разделителя в Вашей стране. Язык C в этом смысле не исключение.

Изменение значения переменной

Как я уже говорил, переменные могут менять свое значение. При этом, после присвоения переменной нового значение старое значение теряется. Например, это может выглядеть так:

int a = 5;
printf("a=%d\n", a);
a = 13;
printf("a=%d\n", a);

 

После первого вызова вызова функции printf Вы получите на в консоли значение 5, а после второго, значение 13. Проверьте это при помощи IdeOne.

Начальное значение переменной

В предыдущих практических примерах Вы объявляя переменную и сразу задавали ей значение. Однако, ранее я говорил, что это не обязательно. Можно создать переменную и не задать ей никакого начального значения. Разные языки программирования по разному интерпретируют эту ситуацию. Но в языке C переменная считается неинициализированой и в общем случае, в ней может содержаться любое произвольное значение. Проверьте это:

  • Уберите инициализацию перемнной a начальным занчением и все присвоения ей значений. Примерно так:
    int a;
    printf("a=%d\n", a);
  • Запустите, посмотрите, что получилось.

Примечание: скорее всего, Вам повезло и Вы получили значение 0. Более того, даже если Вы запустите программу несколько раз Вы, скорее всего, каждый раз будете получать значение 0. Но так везти будет не каждый раз. Поэтому, использовать неинициализированные переменные для чтения из них значения нельзя.

Больше переменных

Переменных в программе может быть, и, обычно бывает, больше чем одна.

  • Создайте еще одну переменную с именем b.
  • Присвойте переменной b какое-то значение, отличное от переменной a.
  • Напечатайте значение переменной b при помощи еще одного вызова функции printf.

Форматированная печать

Имя функции printf расшифровывается, как print formatted. В программе, которую Вы используете в данном уроке показан пример простейшего форматирования, которое можно организовать при помощи данной функции.

Первым параметром данной функции всегда указывается строка формата. При помощи этой строки Вы сообщаете функции printf как нужно печатать. Следом за строкой формата перечисляется список параметров, которые надо напечатать. То есть, после строки формата Вы передаете что нужно напечатать.

Функция printf весьма мощная функция, которая обладает богатыми возможностями по форматированной печати. Но пока нам с ней подробно разбираться некогда. Поэтому, сейчас мы приведем только упрощенный алгоритм работы функции printf:

  • Печатаются все символы строки формата, пока не встретится символ % (процент).
  • Если после символа ‘процент’ указан еще один символ процент, то есть, вот так: “10%%”, то печатается один символ ‘процент’, то есть, вот так: 10%.
  • Если за символом ‘процент’ следует один из управляющих символов, то функция printf берет параметр из списка параметров следующих за строкой формата. Это параметр печатается таким образом, как это указано в строке формата.
  • На текущий момент Вы уже знаете  один управляющий символ: d. Данный управляющий символ показывает, что нужно напечатать целое знаковое число.То есть, в строке формата мы будем указывать %d. Обратите внимание, что одна комбинация %d печатает значение одного параметра.

Например, мы могли бы вывести обе переменные a и b, при помощи одного вызова функции printf,  следующим образом:

printf ("a=%d b=%d\n", a, b);

Еще одним важным моментом являются, так называемые escape-последовательности. Название это идет из далеких времен, не будем подробно говорить почему они так называются. Такие escape-последовательности используются для записи в строке некоторых специальных, например, непечатаемых символов. Одной такой escape-последовательностью мы воспользовались ранее. Это последовательность \n (обратный слеш, n). Эта последовательность означает перевод строки. То есть, встретив такой символ в строке вывода функция printf переведет печать на начало следующей строки.

Практическое задание:

  • Выведите обе переменных при помощи одного вызова функции printf на разных строках.
  • Добавьте третью переменную, например c,
  • Добавьте переменную c в качестве еще одного, дополнительного параметра к функции printf, но дополнительный формат %d к форматной строке не задавайте. Запустите, посмотрите, что произойдет.
  • Теперь добавьте еще два формата %d к той же форматной строке. То есть, у Вас должно получиться 4 формата %d и только 3 переменных. Запустите и посмотрите, что произойдет.

Следующий параграф

К оглавлению

Лицензия

Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)

Programming in C for beginners by Sergey Borisov (AKA risik) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Программирование на языке C для начинающих автор Сергей Борисов (AKA risik) доступна на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

 

One thought on “Программирование на языке C для начинающих: Печать значений переменных”

Leave a Reply