Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Операторы присваивания. Приоритет и порядок выполнения операторов. Привести примеры.

Читайте также:
  1. A — Приоритеты
  2. A — Приоритеты
  3. A — Приоритеты
  4. A — Приоритеты
  5. AT СТАЦИОНАРНАЯ И AT ОПЕРАТИВНАЯ. ПОЗЫ AT. ПРАВИЛА ВЫПОЛНЕНИЯ AT
  6. I.2 Операторы цикла с присваиванием.
  7. II. Информация об услугах, порядок оформления

В языке C++ кроме обычного оператора присваивания =, существуют операторы присваивания, совмещенные с основными операциями. Они позволяют писать инструкции вида a=a+b; в более краткой форме a+= b;

Знак оператора Выполняемое действие Примеры выражений
= += –= *= /= %= <<= >>= &= |= ^= Простое присваивание Сложение и присваивание Вычитание и присваивание Умножение и присваивание Деление и присваивание Вычисление остатка и присваивание Сдвиг влево и присваивание Сдвиг вправо и присваивание Побитовое И и присваивание Побитовое ИЛИ и присваивание Побитовое исключающее ИЛИ и присваивание k = 2 k+=2 k–=2 k*=2 k/=2 k%=2 k<<=2 k>>=2 k&=2 k|=2 k^=2

В языке C++ операторы выполняются в очередности, определяемой их приоритетом. Всего имеется 16 приоритетов операций.

Пр-т Знаки операторов Тип операторов Порядок выполнения
  () []. -> Вызов функции, выбор элемента массива, доступ к члену структуры Слева направо
  – ~! * ++ –– sizeof (тип) тип() Одноместные (унарные) Справа налево
  .* ->* Доступ к члену класса через указатель Слева направо
  * / % Умножение, деление, остаток от деления Слева направо
  + – Сложение, вычитание Слева направо
  << >> Сдвиг влево и вправо Слева направо
  < > <= >= Отношение (неравенство) Слева направо
  ==!= Отношение (равно, не равно) Слева направо
  & Побитовое И Слева направо
  ^ Побитовое исключающее ИЛИ Слева направо
  | Побитовое ИЛИ Слева направо
  && Логическое И Слева направо
  || Логическое ИЛИ Слева направо
  ?: Условная Слева направо
  = *= /= %= += -= <<= >>= Простое и составное присваивание Справа налево
  , Последовательное вычисление Слева направо

Сначала выполняются операторы с более высоким приоритетом. В случае одинакового приоритета операторы выполняются либо слева направо, либо справа налево. Напр, арифметические операторы выполняются слева направо. Инструкция a = b+ c + d + e; в которой сложения будут выполняться слева направо по умолчанию, эквивалентна инструкции a = ((b+ c) + d) + у; в которой порядок выполнения сложений указан скобками.

Операторы присваивания выполняются справа налево, поэтому инструкция x = y = z = 10; присвоит всем трем переменным одно значение 10.

№9. Структура программы на языке С++. Объявления переменных. Объявления и определения. Инструкции и блоки.

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

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

int lower, upper, step; //три переменных типа int

char c, line[1000]; // Здесь c простая переменная типа char, line – массив из 1000 элементов типа char.

При объявлении переменная может быть инициализирована, например,

char esc = ’\\’; //В апострофы заключается одиночный символ

int i = 0;

float eps = 1.0e-5;

К любой переменной в объявлении можно применить квалификатор const для указания того, что ее значение далее не будет изменяться: const double e = 2.71828182845905;

Объявление (declaration) сообщает компилятору о том, что в программе будет существовать какой-либо объект, например, переменная или функция. Инструкция extern int k; является объявлением. Теперь имя целой переменной k можно использовать в выражениях. Ключевое слово extern (внешний) указывает, что память под переменную k будет выделена в другом месте. Определение (definition) можно рассматривать как объявление, которое влечет за собой резервирование памяти для переменной или функции. Все объявления переменных из предыдущего пункта являются также и определениями, так как компилятор зарезервирует под них память.Когда не требуется конкретизация, вместо терминов определение и объявление можно использовать термин описание.

Программа разбита на множество функций, которые решают небольшую самостоятельную часть общей задачи. Каждая функция состоит из отдельных предложений или инструкций, которые завершаются;. Слово 'инструкция' заменяемо словом 'оператор'. Каждая инструкция задаёт какое-то действие в программе. Для объединения нескольких инструкций в одну составную (блок) используются фигурные скобки: { }. Блок с точки зрения синтаксиса воспринимается как одна инструкция. В C и C++ функции запрещено определять внутри других функций. Поэтому имя функции всегда глобально (т е доступно в любом месте программы). Переменные можно объявлять в любом месте программы. Если переменная объявлена в функции, то она существует до закрывающей скобки ближайшего открывающего блока {...}. Переменные, объявленные внутри блока, вытесняют переменные с такими же именами охватывающих блоков.

if (n>0){

int i;

for(i=1; i<n; i++)... }

В этом фрагменте областью действия переменной i является ветвь if, выполняемая для n>0 и переменная i не имеет никакого отношения к любым i, существующим вне этого блока. Переменные, необходимые в качестве параметров цикла можно определять непосредственно в заголовке цикла.

int s=0;

for (int i=1; i<=100; i++)

s+=i;

cout <<i; //ошибка, так как i не определена вне цикла. Но в ТС++ переменная, объявленная в заголовке цикла, существует не только в цикле, но до конца блока, поэтому этот фрагмент будет выполняться без ошибок.

Блочная структура влияет и на область действия внешних переменных. Если даны описания:

INT X;

F()

{ DOUBLE X;...}

То появление X внутри функции F относится к внутренней переменной типа DOUBLE, а вне F - к внешней целой переменной.


Дата добавления: 2015-07-08; просмотров: 560 | Нарушение авторских прав


Читайте в этой же книге: Строки символов представляют последовательность произвольных символов, заключенных в двойные кавычки, например, “Строка символов”, “String of characters”. | Процесс создания программы. Исходная и рабочая программы. Препроцессор, компилятор, редактор связей. | Функции. Формальные параметры и фактические аргументы. Способ передачи аргументов в функции. Привести пример. | Массивы как аргументы функций. Функция сортировки массива методом пузырька. | Символы и символьные константы. Представления символов. Ввод и вывод символов. Привести примеры. | Привести пример программы по обработке строк. | Препроцессор. Директивы препроцессора. | Макросы. Макросы с параметрами. | Указатели и адреса. Привести пример программы, использующей указатели. | Указатели и массивы. Адресная арифметика. |
<== предыдущая страница | следующая страница ==>
Целые типы в языке Си и операции над ними. Представление целых констант в различных системах счисления.| Цикл do…while. Программа вычисления квадратного корня.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)