Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Серым выделены операции, которые нам в этом семестре не понядобятся.Содержание книги
Поиск на нашем сайте Лекция 3 Приоритеты всех операций, определенных в языке С: Направление выполнения: → слева направо ß справа налево Серым выделены операции, которые нам в этом семестре не понядобятся.
Знак операции () – используется при вызове функции и для изменения приоритета. Знак операции [] – используется при обращении к элементу массива. Операции -> и. используются для обращения к элементам структур. Операция Sizeof используется для вычисления размера объекта. Операция * - операция косвенная адресация (разыменование), обращение к объекту по его адресу; & - получение адреса объекта. Операция запятая используется, например, в операторе for при перечислении. ~ тильда – операция битовая инверсия. единиц. Организация данных Данные определяются в программе с помощью типов. Данные можно подразделить на базовые, модифицированные и производные типы. Данныев программе могут быть представлены в виде переменных и констант. Для представления данных используется понятие идентификатор (имя). Это последовательность букв, цифр и символа подчеркивания, которая начинается не с цифры. Прописные и строчные буквы различаются. Максимальная длина идентификатора зависит от версии. Константы – это объекты программы, которые не могут изменять свое значение в процессе ее выполнения. Различают явные (буквальные, неименованные) и символические (именованные ) константы. Буквальные константы не имеют адресов и могут быть представлены в виде целых и вещественных чисел, символов или строк. В языке Си константы могут быть одного из 4 базовых типов: целые, вещественные, символьные и строковые. Целые константы могут быть заданы в десятичной (31), восьмеричной (037) и шестнадцатеричной системе счисления (0X1F или (0x1f)). Например, десятичное число 31, в 8-ой СС запишется 037, в 16-ой СС – 0 X 1 F (0 x 1 f) Вещественные константы могут записываться в программе в естественной и в экспоненциальной форме. Например, неименованные вещественные: –5.1, -4.8, –0.1e4, -0.00001. Символьная константа это один символ таблицы ASCII (значением символьной константы является числовое значение кода символа в этом наборе). ’a’, ‘8’ – символьные константы; Среди символьных констант различают управляющие (‘\ t ’ горизонтальная табуляция, ‘\ n ’ переход к новой строке ). Они транслируются как один символ. Символьные константы, состоящие из одного символа, занимают в памяти один байт и имеют стандартный тип char. Двухсимвольные константы занимают два байта и имеют тип int Строковые константы (строковый литерал) – это последовательность любых символов, заключенных в двойные кавычки. Например, ” Привет” – строковая константа. Форматная строка в функциях ввода/ вывода является примером строковой константы. #include <stdio.h> int main(void) { printf("\n\tПростой тест"); return 0; } Символические ( именованные) константы В языке СИ символические (именованные) константы определяются в директиве препроцессора # define. Тип константы определяется ее значением. Символическое имя может использоваться в любом месте программы, где требуется значение этой константы. Перед компиляцией программы препроцессор заменяет все имена символических констант их значениями. Имена символических констант принято записывать прописными буквами, а имена переменных – строчными. Между именем константы и ее значением должен быть пробел. # define <имя> <значение> #define PI 3.14159, #define N 10, #define S ’a’, #define ST ”строка” Одна из функций препроцессора – макроподстановка (в тексте программы будет произведена замена символического имени на соответствующую строку или фрагмент). Кроме того, константы могут быть заданы квалификатором const int k =10; Переменная это объект программы, обладающий именем (идентификатором), типом и значением, которое может изменяться в процессе выполнения программы. Или, что для Си более характерно Переменная э то область памяти, которая имеет адрес, имя, тип и значение. Данные, находящиеся по данному адресу памяти называются значением переменной. Тип определяет: · Внутреннее представление данных в памяти компьютера. · Множество значений, которое может принимать переменная. · Операции, которые допустимы над данными этого типа. · Размер ячейки памяти. Все переменные до их использования должны быть объявлены. Объявление типов данных В зависимости от типа переменной компилятор выделяет место в памяти компьютера, необходимое для размещения переменной данного типа. <имя типа> < имя 1>, < имя 2>, …, < имя n >; Как уже упоминалось, в языке Си существует 4 базовых типа данных: int (целое со знаком), char (трактуется как целое однобайтовое целоечисло со знаком), double (вещественное число с двойной точностью 8 байт), float (вещественное число с одинарной точностью). Это спецификаторы типа. Размер типа зависит от конкретного компилятора. Базовые типы данных (кроме void) могут иметь различные модификаторы, которые записываются перед идентификатором типа при объявлении типа (signed- со наком, unsigned – без знака, только положительные, long - длинное, short - короткое ). Например, базовый тип int может быть модифицирован каждым из этих спецификаторов, например, short int – короткое целое 2 байта. Модификаторы типа позволяют изменить способ кодирования целого числа (изменить форму представления числа). Модификатором является и const. Размеры типов для определенного компилятора можно посмотреть, используя операцию sizeof (тип). Максимальное и минимальное значения типа можно тоже посмотреть, используя символические константы (подключить для этого стандартный заголовочный файл < limits. h >): например, INT _ MAX, INT _ MIN, DBL _ MAX, DBL _ MIN Размеры типов и их диапазоны приведены в таблицах.
При работе с вещественными числами отдается предпочтение типу double, т.к. у float большая погрешность. Различные типы данных по-разному представляются в памяти. Посмотрим, как целые и вещественные числа представляются в памяти компьютера. Представление целых чисел Считается, что в форме с фиксированной точкой десятичная точка зафиксирована после младшего цифрового разряда, т.е. в числе нет дробной части. Целые числа могут занимать в компьютере 1 байт (полуслово), 2 байта (16 разрядов - слово), 4 байта (32 разряда –двойное слово) или 8 байтов (64 разряда – расширенное слово). Каждый из этих форматов может быть знаковым – для положительных и отрицательных чисел и беззнаковым для положительных. Разные целочисленные типы отличаются разным диапазоном значений и бывают знаковыми (int, shot, long int) и без знаковыми (с модификатором unsigned) В компьютерной технике применяются три формы кодирования целых чисел со знаком: прямой код, обратный и дополнительный. Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково. Обратный и дополнительный коды служат для упрощения и удешевления арифметико-логического устройства (АЛУ), позволяя исключить операцию вычитания. Чтобы закодировать целое число, достаточно перевести его в двоичную систему счисления, дополнить слева нулями (прижать к правому краю разрядной сетки) и добавить знаковый разряд. Системы счисления Для автоматизации работы с данными, которые относятся к разным типам, унифицируют их форму представления. Это можно сделать с помощью кодирования данных на единой основе. Система счисления (CC) – способ представления чисел (правило записи и получения чисел) с помощью фиксированного набора символов, обозначающих цифры. Системы счисления разделяются на позиционные и непозиционные. десятичная СС использует 10 цифр: 0, 1, 2,… 9; двоичная использует 2 цифры: 0, 1; восьмеричная – 8 цифр: 0, 1, 2,… 7; шестнадцатеричная – 16 цифр. Кроме привычных 10 цифр требуется еще 6 символов, в качестве которых используются латинские буквы: 0, 1… 9, A, B, C, D, E, F. При работе с компьютером иногда наряду с двоичной используются также восьмеричная и шестнадцатеричная системы счисления. 8-ричная и 16-ричная системы используются для более короткой и удобной записи двоичных значений. Представление целых чисел Считается, что в форме с фиксированной точкой десятичная точка зафиксирована после младшего цифрового разряда, т.е. в числе нет дробной части. Целые числа могут занимать в компьютере 1 байт, 2 байта (16 разрядов), 4 байта (32 разряда) или 8 байт (64 разряда). Разные целочисленные типы отличаются разным диапазоном значений и бывают знаковые (int, short int, long int) и беззнаковые (с модификатором unsigned). Чтобы закодировать знаковое целое число, достаточно перевести его в двоичную систему счисления, дополнить слева нулями (прижать к правому краю разрядной сетки) и добавить знаковый разряд. Рассмотрим структуру разрядной сетки 2-байтового представления (16 разрядов):
1 000000001111101
Для упрощения арифметических действия с отрицательными числами, как правило, используется или обратный, или дополнительный код. Отрицательные числа преобразуются в обратный код инвертированием всех битов двоичного числа, кроме знакового, а дополнительный можно получить прибавлением единицы к обратному коду числа. 11110=11011112 В 8 байтовой ячейке: 0 1101111 Число -111 будет представлено: Прямой 1 1101111 Обратный 1 0010000 +1 Доп-ый 1 0010001 При 2-байтовой кодировке, когда под значащую часть числа отводится 15 разрядов, максимально возможное целое число, которое может поместиться в отведенную ячейку, составляет 215 - 1 = 32767. Число с большим значением не поместится в такую ячейку. В таком случае говорят о переполнении. Переполнение разрядной сетки - это ситуация, когда число, которое требуется сохранить, не умещается в отведенном количестве разрядов памяти вычислительного устройства. Последствия такой ситуации могут быть разными в зависимости от программы, в которой она случилась: от прерывания программы с выводом сообщения об ошибке до получения неверного результата. Переполнение связано с количеством разрядов устройства, выделяемых для хранения числа. Арифметические действия с целыми числами выполняются точно. Для деления существуют операции определения целой части частного и остатка от деления. Инициализация переменных. Переменной может быть присвоено начальное значение при объявлении: <тип> <имя пер.>=<начальное значение>; Int a=10, n=20; Лекция 4 Выражения Выражение задает правило вычисления. Э то любая синтаксически допустимая последовательность операндов и операций, позволяющая вычислить значение. или Выражение – это совокупность операндов, соединенных знаками операций и скобками, регулирующих порядок действий (выражение состоит из операндов, операций и круглых скобок). Любое выражение, заканчивающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении этого выражения. Частным случаем выражения является пустой оператор; (точка с запятой) Оператор - это наименьшая исполняемая единица программы. Для обозначения конца оператора в языке Си используется точка с запятой. Объекты, над которыми производится действие, называются операндами. Действия над операндами это операции. В качестве операндов в выражениях могут быть: константы (буквальные или именованные), переменные, элементы массива, функции, возвращающие значение и указатели. Знак операции — это один символ или комбинация символов, определяющих арифметические, логические или другие действия над операндами. Каждое выражение принимает какое-либо значение. Тип результата в выражении определяется операциями и типом операндов, которые входят в выражение. Порядок выполнения операций в выражении определяется приоритетом (рангом) операции и правилами ассоциативности. Для изменения порядка выполнения операций используют круглые скобки. Над объектами в Си могут выполняться следующие операции: арифметические, логические, поразрядные и операции отношения. Кроме них, есть также специальная операция - присваивание. В языке Си различают одиночное присваивание, оптимизированная форма присваивания и множественное присваивание. Для каждой операции определено количество операндов. В зависимости от этого операции делятся на унарные, бинарные и тернарные ( условная). Например: -5 унарная (один операнд:); 2+х бинарная (два операнда); ?: тернарная (три операнда). Это условная операция, например: x = 10; x>9? 100: 200; В таблице, рассмотренной ранее приведены все знаки операций, определенные стандартом языка и разбитые на группы в соответствии с их приоритетом (рангом). Все операции в языке СИ имеют приоритет и направление выполнения. Операции 1 ранга имеют наивысший приоритет выполнения. Операции одного ранга имеют одинаковый приоритет, и если их в выражении несколько, то они выполняются в соответствии с правилами ассоциативности либо слева на право, либо справа налево. Например, x = y = z =5; y = x -10+5; Каждая бинарная операция имеет определенный порядок выполнения: слева направо или слева направо. Например, если есть несколько сложений, то они выполняется слева направо, а присваивание справа налево. В программировании ассоциативностью операторов называется последовательность их выполнения (или направление вычисления), реализуемое, когда операторы имеют одинаковый приоритет и отсутствует явное (с помощью скобок) указание на порядок их выполнения. Различают левую ассоциативность, при которой вычисление выражения происходит слева-направо, и правую ассоциативность — справа-налево. Операторы, осуществляющие эти операции, называют левоассоциативными и правоассоциативными. Выражение может содержать несколько операций одного приоритета. Когда несколько операций одного и того же уровня приоритета появляются в выражении, то они применяются в соответствии с их ассоциативностью — либо справа налево, либо слева направо. В общем случае, унарные операции, условная операция и операции присваивания правоассоциативны, а остальные операции левоассоциативны: выражение x = y = z; означает x = (y = z); а выражение x+ y –z; означает (x + y) – z. Арифметические операции: +, -, *, /, %, ++, --; Арифметические операции ассоциируются слева направо. a+b -c Приоритет: ++, --, одноместный + или -; *, /, %,+, -, Язык С предоставляет пользователю операции ++ (инкремент) и -- (декремент). Они увеличивают или уменьшают значение переменной на 1. Например, x++; //это означает, x=x+1; или x--; // это означает, x=x-1; Они могут следовать до операнда ++ x (префиксная форма) или после x ++ (постфиксная форма). Префиксная и постфиксная формы отличаются при использовании их в выражениях. Если оператор инкремента или декремента предшествует операнду, то сама операция выполняется до использования результата в выражении. Если же оператор следует за операндом, то в выражении значение операнда используется до выполнения операции инкремента или декремента. ++ x в выражении означает, что сначала a увеличивается на 1, и ее новое значение будет использоваться в выражении. x ++ в выражении означает, что сначала a используется в выражении, а затем ее значение увеличивается на 1. Выражение x=x+1, можно записать как в виде ++x;так и в виде x++; Значения x будут увеличены на 1 всегда, но использование их в выражениях разное. Например, y =2; x = ++ y +5; Сначала при вычислении выражения y увеличится на 1 (y=y+1), станет равным 3 (y =3); затем, будет выполнено действие 3+5, результат 8 будет записан в переменную x. Значение выражения будет 8. Это равносильно: y =2; у=у+1; x = y +5; А если выражение записать в виде: y =2; x = y ++ +5; то сначала при вычислении выражения к у будет прибавлено 5 (2+5=7) и это значение будет записано в переменную x (x =7). И только, когда выражение будет вычислено, y увеличится на 1, станет=3.Это равносильно y =2; x = y +5; у=у+1;Префиксная форма переменной в выражении обладает самым высоким приоритетом среди всех арифметических операций. Постфиксная форма переменной в выражении обладает самым низким приоритетом, ниже присваивания. Операция деления / применяется к операндам числового типа. При делении целого на целое результатом будет целая часть от деления. Например, 3/2 результат 1, 2/3 – 0. При делении если хотя бы один операнд вещественный, то результат будет вещественный. Например, int a=5; double b=2, c; c=a/b; (2.5) c=5./2; или с=5/2.; результат тоже вещественный. Операция % применяется к операндам целого типа и означает остаток от целочисленного деления. Например, 2%3 результат 2; 5%2 результат 1; Операции отношения (сравнения): >, <, <=, >=,!=, ==; Операции отношения — это операции, в которых значения двух переменных сравниваются друг с другом. Между логическими операциями и операциями отношения существует тесная связь: результаты операций отношения часто являются операндами логических операций. Логические операции:!, &&, || Результатом логического выражения или выражения отношения в Си является целочисленное значение 0 – ложь, или любо е целое число (ненулевая величина) – истина. Обычно это 1. 2>3 результат 0, т.е. ложь; 2==2 результат 1, т.е. истина; x=2; x>0<1 результат 0 x =2; x >0==1 результат 1 В стандартах С89 и в С99 значение ИСТИНА представлено любым отличным от нуля числом, а ЛОЖЬ — нулем. В стандарте С99 дополнительно определен тип данных _ b ооl, переменные которого могут принимать значение только 0 или 1. Приоритет операций отношения и логических операций: ! > >= < <= ==!= && || Присваивание В языке Си операция присваивания записывается знаком (=). В этой операции действие выполняется справа налево. Оператор присваивания может присутствовать в любом выражении языка Си. Этим Си отличается от большинства других языков программирования (Pascal, FORTRAN), в которых присваивание возможно только в отдельном операторе. Общая форма оператора присваивания: имя_переменной = выражение; В языке Си различают: одиночное присваивание, оптимизированное присваивание, и множественное присваивание. В языке Си существуют следующие операции присваивания: =, +=, -=, *=, /=, %=; x=5 – одиночное присваивание. y=(x=5)+b; 1) x=5 2)y= x+b Можно записать многократное (множественное) присваивание: a = b = c = x * y. Сначала вычисляется x*y, затем это значение присваивается c, затем b и a. Для выражений вида: n=n+2; n=n*2; n=n/2; n=n%2 существует другая форма записи (компактная или оптимизированная форма). n=n+2; n+=2; n=n*2; n*=2; n=n/2; n/=2; n = n %2; n %=2; //остаток от деления, только для целых Или выражение x=x*(y+1) эквивалентно x*=y+1; Подключение библиотек Библиотеки позволяют использовать разработанный ранее программный код в различных программах. Программист может не разрабатывать часть кода для своей программы, а воспользоваться тем, что входит в состав библиотек. В языке программирования Cи код библиотек представляет собой функции, размещенные в файлах, которые скомпилированы в объектные файлы, а те, в свою очередь, объединены в библиотеки. В одной библиотеке объединяются функции, решающие определенный тип задач. Например, существует библиотека математических функций. У каждой библиотеки должен быть свой заголовочный файл, в котором должны быть описаны прототипы (объявления) всех функций, содержащихся в этой библиотеке. С помощью заголовочных файлов программист сообщает, какие библиотечные функции необходимы и как их использовать. Библиотеки бывают двух видов — статические и динамические. Код статических библиотек при компиляции полностью входит в состав исполняемого файла, что делает программу легко переносимой. Код динамических библиотек не входит в исполняемый файл, он содержит лишь ссылку на библиотеку. Если динамическая библиотека будет удалена или перемещена в другое место, то программа работать не будет. С другой стороны, использование динамических библиотек позволяет сократить размер исполняемого файла. Также если в памяти находится две программы, использующие одну и туже динамическую библиотеку, то последняя будет загружена в память лишь единожды. Чтобы подключить к программе библиотеку, надо подключить заголовочный файл (# inckude <имя заголовочного файла. h >). Существуют 15 заголовочных файлов. stdio. h (вв/выв), math. h ( матем. функции ), stdlib. h (генератор случ чисел, функции выделения и освобождения памяти), time (функции для работы с системным временем) и т.д. Ввод/вывод Для организации ввода/ вывода в языке Си используются функции стандартной библиотеки. Для подключения к программе этих функций используется директива препроцессора, например, #include <stdio.h >. Каждая стандартная функция имеет прототип в заголовочном файле. Прототипы функций ввода/вывода находятся в файле stdio.h.. Функция форматированного вывода printf Функция printf() предназначена для преобразования и вывода данных (значений переменных, констант и выражений) в стандартный поток вывода (по умолчанию - на экран) согласно строке формата. Функция printf() возвращает количество (число ) выведенных символов или отрицательное значение в случае ошибки. Функция printf() переводит данные из внутреннего представления в символьное и выводит результат этого преобразования на экран дисплея. При этом имеется возможность вывести данные в определенном виде, т.е форматировать данные. Общий вид: Printf (<”форматная_строка”>,<список_аргументов>); Форматная (управляющая) строка ограничена кавычками и содержит 2 типа объектов. Может включать произвольный текст (последовательность символов), которые копируются в поток вывода, управляющие символы и спецификации преобразования данных. Список (аргументов) вывода может отсутствовать, например: Printf (“Hello world!\n”). Функция вывода в этом примере содержит только форматную строку. В форматной строке могут быть указаны управляющие символы ‘\n, \ t Например, ‘\n’ – перевод курсора на новую строку. Текст, заключенный в кавычки, выводится на экран, а управляющий символ \ n переводит курсор на новую строку. Управляющий символ табуляция \ t. Табуляция находится на 1, 9, 17, 25 позиции Строка формата содержит 2 типа объектов: поясняющий текст, который копируется в поток вывода и спецификацию формата, которая задает правила преобразования и вывод очередного значения из списка аргументов (вывода). Спецификации преобразования данных предназначены для управления формой внешнего представления значений аргументов функции printf (). Каждая спецификация формата начинается с символа % и заканчивается символом типа преобразования. Форматная строка имеет вид: [поясн.текст][ % флажки ширина_поля.точность модификатор и спецификатор] Спецификаций должно быть столько же, сколько объектов в списке вывода. Каждая спецификация формата начинается с символа %. Кроме формата, можно указать дополнительные опции: флаги и модификаторы. Между символом % и спецификатором типа (d,fl, f) могут быть помещены флаги. Флаги: - (знак минус) задает выравнивание аргумента по левому краю его поля; + (знак плюс) требует обязательного знака у выводимого числа; пробел – при отсутствии знака перед числом должен стоять пробел; 0 задает дополнение нулями поля слева до заданной ширины при выводе числа. К спецификаторам формата могут быть добавлены модификаторы длины, которые изменят формат вывода. Например, lf – означает, что аргумент имеет тип long. Для символьных и целочисленных данных может быть задана ширина поля вывода. Для вещественных чисел - ширина поля, точка, точность. По умолчанию вещественные числа выводятся с точностью 6 знаков после десятичной точки. Среди элементов спецификации преобразования обязательными являются только два – символ ‘%’ и спецификатор преобразования. В таблице указаны основные форматы. Спецификаторы формата
Для типа double на вводе используют спецификатор lf. В форматной строке список форматов может быть разделен поясняющим текстом. В список вывода (аргументов) функции printf() включают объекты, значения которых должны быть выведены на экран. Это могут быть выражения, переменные, константы, обращения к функциям. Список форматов должен соответствовать по количеству и типам списку аргументов. Пример: int y = 7; float x = 3.1415; printf(“x = %f\ty = %d\n”, x, y); На экране:
Для вывода числовых значений в спецификации преобразования часто используют «ширина_поля» и «точность». Ширина_поля – целое положительное число, определяющее количество знакомест на экране для представления выводимого значения. Для целочисленных данных используется только ширина поля вывода. Точность – целое положительное число, определяющее количество цифр в дробной части внешнего представления вещественного числа (с фиксированной точкой) или его мантиссы (при использовании формы с плавающей точкой). Пример: int y = 7; float x = 3.1415; printf(“x = %.2f\ty = %4d\n”, x, y); На экране:
Пример: int a=37,m=5,n=2; double x=178.946, y=12e-9; printf("a=%d\n\n\n x=%f",a,x);
printf("a=%6d\ty=%g",a,y); a выодится в поле 6 знакомест и прижимается к правому краю.
printf("x=%+-10.2f\ty=%e",x,y);
Вывелся знак у числа и число прижалось к левому краю поля вывода из 10 знако-мест. printf("x=%+-10.2f\ty=%g",x,y); Изменили формат с e на g. Число отобразилось в более короткой форме.
Функция форматированного ввода scanf Для ввода данных с клавиатуры в программе используют функцию scanf(). Эта функция преобразует вводимые данные во внутренний формат в соответствие со спецификацией и помещает их в переменные из списка ввода. Функция возвращает количество успешно считанных, преобразованных и помещенных по определенному адресу данных. С помощью этой функции можно ввести данные любого скалярного типа и строки. Scanf (”<форматная_строка>”,<список ввода>); Для функции scanf форматная строка и список аргументов (ввода) обязательны. В форматной строке можно использовать знак % соответствующий вводимому данному спецификатор и знак \ n. Количество и тип спецификаторов форматов в управляющей строке должны совпадать с количеством и типом переменных в списке ввода. При выполнении программы разделителями между вводимыми данными являются пробелы, нажатие клавиши Enter или символ табуляции. Исходные данные, введенные с клавиатуры, после нажатия клавиши Enter помещаются в специально выделенную операционной системой область памяти – в буфер клавиатуры и одновременно отображаются на экране в виде строки ввода. В отличие от функции printf() аргументами для функции scanf() могут быть только адреса объектов программы, обычно это адреса переменных (указатели ). В форматной строке в списке ввода может быть записано несколько аргументов, они перечисляются через запятую: & аргумент 1, & аргумент 2 & аргумент n. Выражение для получения адреса переменной будет таким: &имя_переменной. Знак & это операция вычисления адреса. Например, int x; float y; /* или scanf (“%d%f”, &x, &y);*/ scanf(“\n%d”, &x); scanf(“%f”, &y); Если тип вводимого аргумента double, то спецификатор lf. Пример Пример int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("viv=%d_%d_%d",x,y,z);
int a; scanf (“%d”, &a); ввели 12345 scanf (“%2d”, &a); Будет считано 12 Оставшиеся остаются в потоке ввода, при следующем scanf могут быть считаны int a, b; ввели 12345 678 scanf (“%d%d”, &a, &b);
Изменили формат scanf (“%3d%7d”, &a, &b);
Еще раз изменили формат scanf (“%7d%5d”, &a, &b);
Лекция 3 Приоритеты всех операций, определенных в языке С: Направление выполнения: → слева направо ß справа налево Серым выделены операции, которые нам в этом семестре не понядобятся.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2020-11-23; просмотров: 225; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.017 с.) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||