В предыдущей части занятия мы познакомились с типами данных и переменными.
Сегодня в качестве практической части мы попробуем объявить несколько переменных разных типов, проинициализировать их и вывести их значения в консоль.
Создадим новый каталог с именем MYPROG04, скопируем туда все файлы проекта прошлого урока с именем MYPROG03, также изменим в содержимом файла build.cmd имя исполняемого файла на myprog04.
Откроем файл main.c и вначале тела функции main() объявим наши переменные
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int main() { char c1, c2; unsigned char c3; short ns1; unsigned short ns2; int ni1; unsigned int ni2; long nl1; unsigned long nl2; long long nll1; unsigned long long nll2; float f; double d; |
Вот сколько будет у нас разных переменных.
Если мы сейчас соберём наш код, то мы получим предупреждение на все наши переменные о том, что мы их объявили, но в дальнейшем не использовали
Далее мы наши переменные проинициализируем. В самой последней переменной применим представление в экспоненциальном виде
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
double d; c1 = 'r'; c2 = -115; c3 = 195; ns1 = -31511; ns2 = 63699; ni1 = -2011242517; ni2 = 4000000000; nl1 = -2011242517; nl2 = 4000000000; nll1 = -8446744073709551615; nll2 = 18446744073709551234ULL; f = 12.456f; d = 1.5364e-20; |
На данном этапе у нас переменные приобрели значения, то есть ячейки, памяти, в которых расположены данные, относящиеся к переменным, заполнились определёнными значениями.
Даже если сейчас мы соберём код, то от предупреждений мы тем не менее не избавимся, так как переменные мы хоть и проинициализировали, но значениями этими мы так нигде и не воспользовались
Поэтому давайте теперь выведем эти данные на экран. Тем самым мы обеспечим хоть какое-то использование значений наших переменных.
Мы удалим весь вывод в консоль из кода (код от инициализации последней переменной до возврата значения из функции return 0) а вместо этого выведем значения наших переменных
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
d = 1.5364e20; //output to the console data of various types printf("Char symbol: "); printf("%crn",c1); printf("Signed char: "); printf("%hdrn",c2); printf("Unsigned char: "); printf("%hdrn",c3); printf("Signed short: "); printf("%hdrn",ns1); printf("Unsigned short: "); printf("%hurn",ns2); printf("Signed integer: "); printf("%drn",ni1); printf("Unigned integer: "); printf("%urn",ni2); printf("Signed long: "); printf("%ldrn",nl1); printf("Unsigned long: "); printf("%lurn",nl2); printf("Signed long long: "); printf("%I64drn",nll1); printf("Unsigned long long: "); printf("%I64urn",nll2); printf("Float: "); printf("%frn",f); printf("Double: "); printf("%.24lfrn",d); printf("Hex: "); printf("0x%Xrn",ni2); |
При выводе числа типа double мы применили ещё один модификатор .24. Модификатор точка с цифрой обозначает, какая точность числа с плавающей точкой нам требуется при преобразовании его в строку, то есть сколько цифр мы хотим видеть в дробной части после точки.
Соберём наш код
Мы видим, что теперь у нас нет вообще ни одного предупреждения.
Отлично!
Запустим наш код на выполнение и увидим вывод в консоли значений всех наших переменных
Таким образом, в данном занятии мы познакомились с типами данных и с переменными, которые научились объявлять, инициализировать, а также, подтвердив затем свои знания на практике, вывели значения в консоль всех наших переменных.
Всем спасибо за внимание!
Предыдущая часть Программирование на C Следующий урок
Смотреть ВИДЕОУРОК в RuTube (нажмите на картинку)
Смотреть ВИДЕОУРОК в YouTube (нажмите на картинку)
Здравствуйте. У Вас в коде с printf убежали слеши, вместо \r\n, просто rn. Хотя в виде всё на месте.
Здравствуйте!
Это всё происки вордпресса.
Здравствуйте. Возможно я в чем-то не разобрался, но как мне кажется в данном отрезке кода (это строка 7 и 8):
printf(«Unsigned char: «);
printf(«%hd\r\n»,c3);
вместо модификатора «%hu\r\n», который как раз должен выводить беззнаковое число, затесался «%hd\r\n», который, как я понял из ваших уроков, отвечает за вывод знакового десятичного числа. Или я чего-то не понял?
И спасибо огромное за уроки)
Префикс модификации h служит для того, чтобы ограничить целое число до short (2 байтов). Работает только начиная со стандарта c99.
Как посылать команды в GDB из батника? через echo не получается