47829 (Операции языка Cи)

2016-07-28СтудИзба

Описание файла

Документ из архива "Операции языка Cи", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "47829"

Текст из документа "47829"

Кафедра: Автоматика и информационные технологии

ОПЕРАЦИИ ЯЗЫКА СИ

Содержание

ХАРАКТЕРИСТИКИ ОПЕРАЦИЙ

Таблица приоритетов операций

Комментарии к операциям

Правила преобразований типов

В выражениях

В присваиваниях

ЛАБОРАТОРНЫЕ ЗАДАНИЯ

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

Операции присваивания.

Логические операции и операции инкремента.

Поразрядные операции.

Отношения и условия

Выполнение операций и их приоритеты

Основные типы данных

Приведение целых и вещественных типов

Приведение целых и вещественных выражений

ОТВЕТЫ К ЗАДАНИЯМ

ДОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Характеристики операций

Операция – это элементарная конструкция, которая возвращает некоторый результат. В отличие от операций, операторы – синтаксические конструкции, управляющие ходом выполнения программы. Основные операторы: условные переходы и циклы.

По количеству аргументов операции бывают унарные, бинарные и имеется одна тернарная операция «Условие».

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


Таблица приоритетов операций

Операции, расположенные в таблице выше, имеют больший приоритет.

Таблица 1

№ операции

Группа операций

Обозначение операции

Название операции

Название на сленге

Ассоциативность

первичные

()

круглые скобки

1. () [] -> :: .

[]

индексация

Квадратные скобки

->

Обращение к элементу структуры по указателю на структурную переменную

стрелка

::

Разрешение видимости

Четвероточие

.

Обращение к элементу структуры по имени структурной переменной

Точка

унарные

!

Логическое отрицание

Восклицательный знак

~

Побитовое инвертирование

Тильда

++

Автоматический инкремент ++х;

Отложенный инкремент х++

Плюс-плюс

--

Автоматический декремент --х;

Отложенный декремент х--

Минус-минус

-

Обращение знака

Минус

+

Подтверждение знака

плюс

(тип)

Явное приведение типа

*

Разыменование указателя

Звездочка

&

Взятие адреса

Амперсанд

sizeof

Размер в байтах аргумента

sizeof

new

Операция выделения динамической памяти

new

delete

Операция освобождения динамической памяти

delete

мультипликативные

*

умножение

умножение

/

деление

деление

%

Деление по модулю

процент

аддитивные

+

-

Сумма

разность

Сложение

Разность

сдвиги

<<

Побитовый сдвиг влево

Меньше-меньше

>>

Побитовый сдвиг вправо

больше-больше

отношения

<

<=

>

>=

Меньше

Меньше равно

Больше

Больше равно

Сравнение

==

Сравнение на равенство

!=

Сравнение на неравенство

3. .* ->*

поразрядные

&

Побитовое «И»

амперсанд

^

Побитовое взаимоисключающее «ИЛИ»

крышка

|

Побитовое «ИЛИ»

Побитовое «ИЛИ»

логические

&&

Логическое «И»

«И»

||

логическое «ИЛИ»

«ИЛИ»

Условие

?:

Условное выражение

Вопросительный знак

присваивания

=

Присваивание

Равно

*= /= %= += -= &= ^= |= <>=

Комбинированные присваивания

Умножить равно и т.д.

запятая

,

запятая

запятая

Ассоциативность «слева направо» означает группировку операций таким образом: запись A1 @ A2 @ A3 означает ((A1 @ A2) @ A3).

Ассоциативность «справа налево» обрабатывает запись A1 @ A2 @ A3 как (A1 @ (A2 @ A3)).

Комментарии к операциям

1. () – самая сильная операция. Выражение (2*(4+5)) равно 18.

2. [] индексирует элементы массивов. А[3][6] – в третьей строке шестой элемент. Индексация начинается с нуля, то есть А[0][0] – начальный элемент массива.

3. Операция -> используется с указателями на структурные переменные и на объекты классов. Например,

struct Pixel

{

int x, y;

char col;

};

Pixel A, *ptr;

ptr = &A;

ptr->x = 100;

4. Операция :: применятся для обращения к глобальным переменным, скрытым локальными переменными.

int x = 2;

void main()

{

int x=5;

printf(“%d”, x + ::x); // 7

}

5. Операция “точка” используется с структурными переменными и над объектами классов. Например,

Pixel A;

А.x = 100;

6. В языке Си нет логических констант true и false. Вместо этого все, что не ноль считается истинным, а ноль любого типа считается ложью. При этом представителем истины является 1.

Таблица 2.

Таблица истинности операции логического отрицания

x

ноль

не ноль

!x

1

0

7. Побитовое инвертирование применяется только к целым аргументам. Для получения результата аргумент необходимо преобразовать в двоичную систему счисления. Количество разрядов должно соответствовать типу аргумента.

Таблица 3.

Таблица истинности

x

0

1

~x

1

0

Пример.

char x = 20, y;

y= ~x;

Так как х = 20 = 000101002, то y = 11101011. Переменная y является знаковой, поэтому ее содержимое компилятор будет интерпретировать как число со знаком, то есть отрицательное. Найдем это число из схемы

y = 1110 1011

+

-y = 0001 0101

= 0000 0000

Так как –y = 21, то y = -21.

8. Автоматический инкремент увеличивает аргумент на единицу. Применяется к любым типам. Операция ++x эквивалентна оператору x = x + 1, но занимает меньше места и удобнее в сложных выражениях. Отложенный инкремент x++ увеличивает аргумент на единицу при следующей встрече этой переменной. Не учитывается ее использование в строках и комментариях. Заметим, что название языка Си++ происходит от этой операции Автор Си++ Б.Страустрап видимо, предполагал, что этот язык на порядок лучше своего предшественника, языка Си.

9. Операция декремента аналогично уменьшает аргумент на единицу.

Пример. int x = 2, y = 4, z;

z = x++ + ++x + y-- + --y;

В результате x = 4, y = 2, z = 2 + 4 + 4 + 3 = 13.

10. Операция –x является стандартной, она не меняет значения x.

11. Операция +x лишена смысла.

12. Явное преобразование типа не меняет типа своего аргумента и влияет только на тип результата. Запись (int)2.1 вернет число 2. Используется, как правило, при работе с указателями. Для числовых констант применяется неявное преобразование типа.

13. Операция «звездочка» применяется только к указателю и возвращает переменную, на которую указывает этот указатель. Может находиться в левой части операции присваивания (Lvalue) и в правой части (Rvalue). В первом случае результат операции – сама ячейка, на которую указывает указатель, Во втором случае – содержимое этой ячейки.

14. Взятие адреса применяется к любому идентификатору, с которым связана область ОЗУ. Возвращает логический адрес самого левого байта памяти, которую занимает этот идентификатор. Это могут быть переменные базовых типов, другие указатели, элементы массивов, структурные переменные. Для определения типа результата этой операции, надо добавить к типу аргумента одну звездочку.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее