Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Арифметические операции и присваивание



Обозна-чение Операция Тип операндов и результата Примеры
+ сложение арифметический, указатель x + y
вычитание арифметический, указатель x - y
* умножение арифметический x * y
/ деление арифметический x / y
% остаток целочисленного деления целый x % y
++ инкремент (увеличение на 1) * арифметический, указатель ++I; I++
-- декремент (уменьшение на 1) * арифметический, указатель --I; I--

* – в примере приведены префиксная и постфиксная формы операций соответственно. В префиксной форме сначала выполняется операция, а затем ее результат используется, в постфиксной сначала используется текущее значение переменной, а затем выполняется операция.

Операция присваивания (=) работает в соответствии с обычными математическими требованиями: значение справа присваивается переменной слева.

Операции отношения

Обозна-чение Операция Тип операндов и результата Примеры
== Равно арифметический, указатели X == Y
! = Не равно арифметический, указатели X! = Y
< Меньше чем арифметический, указатели X < Y
> Больше чем арифметический, указатели X > 0
< = Меньше или равно арифметический, указатели X < = 1
> = Больше или равно арифметический, указатели Y > = 1

 

Используются для сравнения операндов. Возвращают true (не NULL) – истина, если соотношение верно, и false (NULL) – ложь, если не верно. NULL – это двоичный 0, т.е. когда байт состоит из 0. Ближайший аналог – 0 в переменной целого типа.

Логические операции

Обозначение Операция Примеры
! Отрицание ! A
& & Логическое И A & & B
|| Логическое ИЛИ A || B

 

Возвращают true (не NULL) – истина, или false (NULL) – ложь. А и В могут быть выражениями.

Операция «! » возвращает true, если операнд равен NULL.

Операция «& & » возвращает true, если оба операнда не равны NULL.

Операция «||» возвращает true, если хотя бы один операнд не равен NULL.

Операция запятая (, )

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

for (i = 1, j = 10; i == j; i++, j--)

{buf = mas[i];

mas[i] = mas[j];

mas[j] = buf;

}

// Производит реверс массива mas

Условная операция (? : )

Общий вид условной операции

 

условие? выражение_1: выражение_2;

 

Если условие верно (не NULL), то выполняется выражение_1, иначе выполняется выражение_2. Например:

 

Y = X> 0? X+7: X * X;

//Если Х больше 0, то Y = Х+7, иначе Y = Х2.

Операция sizeof

Определяет размер своего операнда (переменной, объекта, типа) в байтах. Возвращает целое число.

Операция имеет две формы:

sizeof выражение;

sizeof (имя_типа);

Например:

sizeof a; //вернет размер переменной а

sizeof (int); // вернет размер типа int (4 байта)

4.7. Операция адресации (& ) и косвенной адресации (*)

Операция * - позволяет получить значение, на которое указывает указатель (расположенное по заданному адресу).

Операция & - позволяет определить адрес операнда (например переменной).

4.8. Операции доступа к элементам: (.) и (–> )

Операции используются для доступа к полям структур, объединений, элементам классов. Если доступ осуществляется по имени самого объекта, то используется операция «.», если с помощью указателя на объект, то используется «–> ». Например:

struct pb { double x, y; } d1;

//Объявляем переменную d1 типа структуры pb с двумя полями

struct pb *d_1;

//Объявляем указатель d_1 на структуру типа pb

d1.x = 6.264845;

//Присваиваем полю x структуры d1 значение

d_1 = & d1;

//Присваиваем указателю d_1 адрес структуры d1

 

d_1–> y = 56.325255;

/*Присваиваем полю y структуры d1 значение через указатель d_1*

Приоритет операций

Приоритет операций в С и С++ в основном соответствует правилам, принятым в математике. Если есть сомнения, в каком порядке будут выполняться операции, или в сложных выражениях, рекомендуется применение круглых скобок, имеющих высокий приоритет.


Операторы

 

Безусловные операторы break, return, cotinue

Безусловные операторы сами по себе в программе не используются, а только в составе с другими операторами или в функциях.

break – позволяет досрочно закончить выполнение цикла или оператора выбора.

continue – позволяет начать новую итерацию (шаг) цикла без завершения предыдущей.

return – позволяет завершить работу функции и возвращает управление в ту точку, откуда она была вызвана, а также возвращает результат функции.

 

Оператор условия if

Позволяет выбрать один из вариантов выполнения действий в зависимости от условия. Общий вид оператора

 

if (условие)

{

оператор_1;

}

else

{

оператор_2;

}

Если условие истинно (не равно 0), выполняется оператор_1, если ложно, то выполняется оператор_2.

Конструкция else необязательна. Например:

 

int x, z;

if (x> 7)

{

z = x + 4;

}

else

{

z = x + x;

};

 

Оператор выбора switch

Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий:

 

switch ( выражение_выбора )

{

case значение_1: оператор_1;

break; // Не обязательно

case значение_2: оператор_2;

break; // Не обязательно

...

case значение_n: оператор_n;

break; // Не обязательно

default: оператор; // Не обязательно

}

 

где выражение_выбора – любое выражение или переменная, значение которых должно быть целым; значение - целые или символьные константы. Все они должны быть уникальными.

Порядок выполнения оператора switch:

- вычисляется выражение_выбора;

- вычисленное значение последовательно сравнивается со значениями, следующими за ключевыми словами case;

- если значение совпадает с выражением_выбора, то управление передается на оператор, стоящий после двоеточия за соответствующим ключевым словом case и выполняются все операторы до конца оператора switch или до оператора break ;

- если нет ни одно совпадения, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия – на следующий после switch оператор.

Оператор цикла for

Организует цикл со счетчиком.

Общий вид оператора:

 

for (выражение_1; выражение_2; выражение_3)

// заголовок цикла

{операторы; } // тело цикла

 

где выражение_1 – задает начальное значение счетчика цикла; выражение_2 – условие цикла (цикл будет повторяться, пока условие истинно); выражение_3 – увеличение счетчика цикла. Например:

 

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

 

Оператор цикла while

Организует цикл с предусловием.

Общий вид оператора:

 

while (условие) {операторы; }

 

Условие – выражение, которое принимает логическое значение true – истина (не NULL) или false – ложь (NULL). Выполнение оператора повторяется до тех пор, пока значением условия является true. Условие вычисляется заново перед каждой итерацией. Например:

 

while (N > 1)

{

N = N / 10;

}

Оператор цикла do while

Организует цикл с постусловием.

Общий вид оператора:

 

do {операторы; } while (условие);

 

Условие – выражение, которое принимает логическое значение true – истина (не NULL) или false – ложь (NULL). Выполнение оператора повторяется до тех пор, пока значением условия является true. Условие вычисляется заново после каждой итерации. Например:

 

do

{

N = N / 10;

}

while (N > 1)


Функции

 

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

Программа на языке Си состоит, по крайней мере, из одной функции - функции main. С нее всегда начинается выполнение программы.

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

Существует три понятия:

- определение функции – описание действий, выполняемых функцией;

- объявление функции (задание прототипа функции) – задание типа возвращаемого значения (типа функции), имени функции, списка передаваемых в функцию параметров;

- вызов функции.

Определения используемых функций могут следовать за определением функции main, перед ним, или находиться в другом файле.

Общий вид определения функции:

 

тип_результата имя_функции (список_формальных_параметров)

{

операторы;

return; //может отсутствовать

}

 

где тип_результата - один из стандартных типов; имя_функции – любой допустимый идентификатор; список_формальных_параметров – перечисление всех формальных аргументов с указанием их типа (объявление переменных, которые будут переданы в функцию при обращении к ней).

Например:

 

int factorial (int n) //Заголовок функции

{

int a; //Объявление локальных переменных функции

…..//Действия, выполняемые функцией

return a;

}

 

Если функция определена после main, то до вызова функции нужно её объявить (записать прототип функции). Объявление функции имеет такой же вид, что и определение, с той лишь разницей, что тело функции отсутствует.

При вызове функции указывается имя функции и список (в скобках) фактических параметров (переменных, которым присвоены определенные значения). В качестве фактических параметров могут использоваться как значения, так и переменные. В любом случае количество фактических и формальных параметров одинаково и значения передаются в порядке записи. Функции нельзя передавать массивы и функции, а только указатели на них. Например:

 

F = factorial (5);

T = factorial (2)-7;

M = factorial (n);

P = mm (d, c, b, a);

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-14; Просмотров: 1358; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.04 с.)
Главная | Случайная страница | Обратная связь