Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Выражения и операции

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

Лекция №2

Тема: Введение в язык программирования С/С++
ПЛАН 2.1 Основные типы данных 2.2 Выражения и операции 2.3 Стандартные функции  
Время: 2 ч.
Литература: [4] с.31-58.
       

Классификация типов данных

Основные типы данных в языке C/C++ делятся на две категории:

1) целые типы;

2) вещественные типы.

Целые типы:

char

short int или short

int

long

Любой целочисленный тип может быть определен как знаковый (signed) или беззнаковый (unsigned). По умолчанию, если не указан модификатор, целые типы являются знаковыми (то есть объявление signed int эквивалентно int).

Диапазоны значений целых типов:

Тип Размер памяти, байт Диапазон значений
char   -128…127
unsigned char   0…255
short   -32768…32767
unsigned short   0…65535
int   -32768…32767
unsigned int   0…65535
long   -2147483468…2147483467
unsigned long   0…4294967295

Примечание – Тип char используется для представления кодов символов. При использовании символов кириллицы необходимо применять тип unsigned char, чтобы коды этих символов соответствовали ASCII (в ином случае, коды символов кириллицы будут отрицательными).

Вещественные типы:

float

double

long double

Диапазоны значений вещественных типов:

Тип Размер памяти, байт Диапазон значений
float   3.4x10-38…3.4x1038
double   1.7x10-308…1.7x10308
long double   3.4x10-4932…3.4x104932

В зависимости от реализации компилятора C/C++ может меняться размер памяти, занимаемый величиной того или иного типа. Для определения этого размера памяти используется операция sizeof(тип).

Объявления переменных

Все переменные, используемые в программе должны быть объявлены.

Простейшая форма объявления переменных:

тип список_имен_переменных;

Примеры

int a,b;

float z,x,y;

unsigned long m;

После объявления переменные по умолчанию имеют неопределенное значение. При необходимости можно задать значение переменной при ее определении (это называется инициализацией переменной).

Объявление инициализированной переменной:

тип имя_переменной=начальное_значение;

Пример

float pi=3.14159;

Именованные константы

Для задания константы, имеющей имя используется форма

const тип имя_константы=значение;

Примечания

1 Значение константы должно соответствовать ее типу.

2 Указание типа может отсутствовать, в этом случае тип константы определяется по ее значению.

3 В специальной литературе вместо термина «именованная константа» может встречаться термин «немодифицируемая переменная».

Примеры

const double m=15.632;

const t=452;

 

Выражения состоят из операндов, знаков операций и скобок. Результатом выражения является значение определенного типа. Знаки операций определяют действия, которые должны быть выполнены над операндами. Каждый операнд в выражении может быть выражением (или его частным случаем – константой или переменной).

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

Если в выражении подряд записаны несколько операций одного приоритета, то: унарные операции, условная операция и операции присваивания выполняются справа налево, все остальные операции – слева направо.

Основные операции языка C/C++

Операция Описание
Унарные операции
& Получение адреса операнда
* Операция разыменования (обращение по адресу ссылки)
Арифметическое отрицание (унарный минус)
+ Унарный плюс
++ Увеличение на 1 (инкремент)
– – Уменьшение на 1 (декремент)
! Логическое отрицание (НЕ)
sizeof Определение размера
(тип) Приведение типа
Бинарные операции
мультипликативные операции
* Умножение
/ Деление
% Остаток от деления
аддитивные операции
+ Сложение
Вычитание
Операции сдвигов
<< Сдвиг влево
>> Сдвиг вправо
Поразрядные операции
& Поразрядное И
^ Поразрядное исключающее ИЛИ
| Поразрядное ИЛИ
Логические операции
&& Логическое И
|| Логическое ИЛИ
Операции отношений
< Меньше
<= Меньше или равно
> Больше
>= Больше или равно
= = Равно
!= Не равно
?: Условная операция (тернарная)
Операции присваивания
= Обычное присваивание
*= Умножение с присваиванием
/= Деление с присваиванием
%= Остаток от деления с присваиванием
+= Сложение с присваиванием
– = Вычитание с присваиванием
<<= Сдвиг влево с присваиванием
>>= Сдвиг вправо с присваиванием
&= Поразрядное И с присваиванием
|= Поразрядное ИЛИ с присваиванием
^= Поразрядное исключающее ИЛИ с присваиванием
, Последовательное вычисление (несколько выражений, разделенных запятыми вычисляются последовательно слева направо, результатом будет значение самого правого выражения)
Операции выбора компонентов структурированного объекта
. (точка) Прямой выбор компонента структуры
–> Косвенный выбор компонента структурированного объекта, адресуемого указателем.

Примечания

1 Операции сдвига, увеличения (уменьшения) на 1, поразрядные операции, остаток от деления применяются только для целочисленных операндов.

2 В качестве операнда для операций ++ и – – можно использовать только L-значения (леводопустимые выражения).

3 Операции ++ и – – могут использоваться в префиксной форме (изменение операнда до его использования) или постфиксной форме (изменение операнда после его использования).

Примеры: ++w – префиксная форма; w++ - постфиксная форма.

То есть, если заданы целые числа x=16, y=9,

то при вычислении выражения z=x++-y вначале вычисляется x-y, затем x++, в результате получим: z=7, x=17,

а при вычислении выражения z=++x-y вначале вычисляется ++x, а затем x-y, в результате получим: z=8, x=17

4 Для всех составных операций присваивания форма присваивания E1 оп=E2 эквивалентна форме E1=E1 оп E2, где оп – обозначение операции.

 

Приоритет операций в C/C++

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

Примечание – У операций с меньшим рангом приоритет выше.

 

<== предыдущая лекция | следующая лекция ==>
Полевой транзистор с изолированным затвором (МДП-транзистор) | Очистка экрана. Математические функции
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 485; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.