Q: (ВКЛ. ВЫКЛ);
Базовые средства языка С++
Основные вопросы
lСостав языка
lПростые типы данных
lПеременные
lСтруктура программы
lЭтапы создания исполняемой программы
l
Алфавит языка С++
lПрописные и строчные латинские буквы и знак подчеркивания
lАрабские цифры от 0 до 9;
lCпециальные знаки:
"{}.![]()+-/%*.\’:?<=>!&#~;^
lПробельные символы: пробел, символы табуляции, символы перехода на новую строку.
lИз символов алфавита формируются:
nидентификаторы;
nключевые (зарезервированные) слова;
nзнаки операций;
nконстанты;
nразделители (скобки, точка, запятая, пробельные символы).
Идентификаторы
lИдентификатор — это имя программного объекта.
lВ идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания.
lПрописные и строчные буквы различаются, например, sysop, SySoP и SYSOP — три различных имени.
lПервым символом идентификатора может быть буква или знак подчеркивания, но не цифра.
lПробелы внутри имен не допускаются.
Выбор идентификатора
lДлина идентификатора по стандарту не ограничена, но некоторые компиляторы и компоновщики налагают на нее ограничения.
lИдентификатор не должен совпадать с ключевыми словами
lНе рекомендуется начинать идентификаторы с символа подчеркивания, поскольку они могут совпасть с именами системных функций или переменных
lНа идентификаторы, используемые для определения внешних переменных, налагаются ограничения компоновщика (использование различных компоновщиков или версий компоновщика накладывает разные требования на имена внешних переменных).
Ключевые слова
lКлючевые слова — это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены.
Список ключевых слов
asm | else | new | this |
auto | enum | operator | throw |
bool | explicit | private | true |
break | export | protected | try |
case | extern | public | typedef |
catch | false | register | typeid |
char | float | reinterpret_cast | typename |
class | for | return | union |
const | friend | short | unsigned |
const cast | goto | signed | using |
continue | if | sizeof | virtual |
default | inline | static | void |
delete | int | static_cast | volatile |
do | long | struct | wchar_t |
double | mutable | switch | while |
dynamic_cast | namespace | template |
Константы
lКонстантами называют неизменяемые величины.
lРазличаются целые, вещественные, символьные и строковые константы.
Примеры констант
Константа | Формат | Примеры |
Целая | Десятичный: последовательность десятичных цифр, начинающаяся не с нуля, если это не число нуль Восьмеричный: нуль, за которым следуют восьмеричные цифры (0,1,2,3,4,5,6,7)Шестнадцатеричный: Ох или ОХ, за которым следуют шестнадцатеричные цифры (0,l,2,3,4,5,6,7,8,9,A,B,C,D,E,F) | 8, 0, 199226
01, 020, 07155
ОхА, 0xlB8, 0X00FF |
Вещественная | Десятичный: [цифры]. [цифры] Экспоненциальный: [цифры] [.] [цифры]{Е|е}[+-] [цифры] | 5.7, .001, Е6, .lle-3, 5E10 |
Символьная | Один или два символа, заключенных в апострофы | 'А', 'ю', '*', 'db', \0', \п\ •\012\ \xO7\xO7' |
Строковая | Последовательность символов, заключенная в кавычки | "ПЯВУ", «\tЗначение r=\0xF5\n" |
Управляющие последовательности
Изображение | Шестнадцатеричный код | Наименование |
\а | 7 | Звуковой сигнал |
\b | 8 | Возврат на шаг |
\f | С | Перевод страницы (формата) |
\n | А | Перевод строки |
\r | D | Возврат каретки |
\t | 9 | Горизонтальная табуляция |
\v | 6 | Вертикальная табуляция |
\\ | 5С | Обратная косая черта |
\’ | 27 | Апостроф |
\" | 22 | Кавычка |
\? | 3F | Вопросительный знак |
\0ddd | - | Восьмеричный код символа |
\0xddd | ddd | Шестнадцатеричный код символа |
Комментарии
Комментарий предназначается для записи поясняющей программу информации
Существует два вида комментариев
nСтрочный – начинается с двух символов «прямая косая черта» (//) и заканчивается символом перехода на новую строку
nБлочный –заключается между символами-скобками /* и */.
Внутри комментария можно использовать любые допустимые на данном компьютере символы, а не только символы из алфавита языка C++, поскольку компилятор комментарии игнорирует.
Вложенные блочные комментарии стандартом не допускаются, хотя в некоторых компиляторах разрешены.
Простые типы данных
lДля описания простых типов определены следующие ключевые слова:
nint (целый);
nchar (символьный);
nwchar_t (расширенный символьный);
nbool (логический);
nfloat (вещественный);
ndouble (вещественный с двойной точностью).
lПервые четыре типа называют целочисленными (целыми), последние два — типами с плавающей точкой. Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой.
lСуществует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
nshort (короткий);
nlong (длинный);
nsigned (знаковый);
nunsigned (беззнаковый).
Целый тип (int)
lРазмер типа int зависит от компьютера и компилятора.
lРазмер short int <= Размер int <= Размер long int
lВнутреннее представление величины целого типа — целое число в двоичном коде. При использовании спецификатора signed старший бит числа интерпретируется как знаковый (0 — положительное число, 1 — отрицательное).
lПо умолчанию все целочисленные типы считаются знаковыми, то есть спецификатор signed можно опускать.
lКонстантам, встречающимся в программе, приписывается тот или иной тип в соответствии с их видом. Если этот тип по каким-либо причинам не устраивает программиста, он может явно указать требуемый тип с помощью суффиксов L, l (long) и U, u (unsigned).Например:
nконстанта 32L – signed long int
nконстанта 77U – unsigned int
lМожно использовать суффиксы L и U одновременно.
Символьный тип (char)
lПод величину символьного типа отводится, как правило, 1 байт.
lТип char может быть со знаком или без знака.
lВ величинах со знаком можно хранить значения в диапазоне от -128 до 127.
lПри использовании спецификатора unsigned значения могут находиться в пределах от 0 до 255.
lВеличины типа char применяются также для хранения целых чисел, не превышающих границы указанных диапазонов.
Логический тип (bool)
lВеличины логического типа могут принимать только значения true и false, являющиеся зарезервированными словами.
lВнутренняя форма представления значения false — 0 (нуль).
lЛюбое другое значение интерпретируется как true.
lПри преобразовании к целому типу true имеет значение 1.
Типы с плавающей точкой
(float, double и long double)
lВнутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка.
lМантисса — это число, большее 1.0, но меньшее 2.0. Поскольку старшая цифра мантиссы всегда равна 1, она не хранится.
lКонстанты с плавающей точкой имеют по умолчанию тип double.
lМожно явно указать тип константы с помощью суффиксов F, f (float) и L, 1 (long). Например:
nконстанта 2E+6L - тип long double
nконстанта 1.82f — тип float.
Диапазоны значений простых типов
Тип | Диапазон значений | Размер (байт) |
bool | true и false | 1 |
signed char | - | 1 |
unsigned char | 0 | 1 |
signed short int | 67 | 2 |
unsigned short int | 0 | 2 |
signed long int | -2 2 | 4 |
unsigned long int | 0 5 | 4 |
float | 3.4e3.4e+38 | 4 |
double | 1.7e-1.7e+308 | 8 |
long double | 3.4e-43.4e+4932 | 10 |
Тип void
lМножество значений этого типа пусто.
lОн используется:
nдля определения функций, которые не возвращают значения,
nдля указания пустого списка аргументов функции
nкак базовый тип для указателей
nв операции приведения типов
Структура программы
Программа на языке C++ состоит из функций, описаний и директив препроцессора.
Одна из функций должна иметь имя main. Выполнение программы начинается с первого оператора этой функции.
Описание функции
тип_возвращаемого_значения имя ([параметры ])
{
операторы, составляющие тело функции
}
- Если функция не должна возвращать значение, указывается тип void. Тело функции заключается в фигурные
скобки; Функции не могут быть вложенными;
Описание переменной
[класс памяти] [const] тип имя [инициализатор];
lНеобязательный класс памяти может принимать одно из значений auto, extern, static и register.
lМодификатор const показывает, что значение переменной изменять нельзя. Такую переменную называют именованной константой, или просто константой.
lПри описании можно присвоить переменной начальное значение, это называется инициализацией. Инициализатор можно записывать в двух формах
nсо знаком равенства: = значение
nв круглых скобках: ( значение )
lКонстанта должна быть инициализирована при объявлении.
lВ одном операторе можно описать несколько переменных одного типа, разделяя их запятыми.
Примеры описания переменных
short int а = 1:
const char С = ‘С’;
char s, sf = 'f’;
char t (54);
float с = 0.22, x(3), sum;
Область действия идентификатора
lДругое название – область видимость переменной
lОбласть действия идентификатора - это часть программы, в которой его можно использовать для доступа к связанной с ним области памяти.
lЕсли переменная определена внутри блока она называется локальной, область ее действия — от точки описания до конца блока, включая все вложенные блоки.
lЕсли переменная определена вне любого блока, она называется глобальной и областью ее действия считается файл, в котором она определена, от точки описания до его конца.
Класс памяти
lauto — автоматическая переменная. Память под нее выделяется при необходимости и инициализируется каждый раз при выполнении оператора, содержащего ее определение. Освобождение памяти происходит при выходе из блока, в котором описана переменная. Время ее жизни — с момента описания до конца блока.
lextern — означает, что переменная определяется в другом месте программы (в другом файле или дальше по тексту).
lstatic — статическая переменная. Время жизни — постоянное. Инициализируется один раз при первом выполнении оператора, содержащего определение переменной.
lregister — аналогично auto, но память выделяется по возможности в регистрах процессора. Если такой возможности у компилятора нет, переменные обрабатываются как auto.
Этапы создания исполняемой программы


С++. Базовые средства описания действий
Основные вопросы
lОперации
lВыражения
lОператоры ветвления
lОператоры цикла
lОператоры передачи управления
Унарные операции
++ -- sizeof ~ ! - & * new delete (type) | увеличение на 1 уменьшение на 1 размер a=sizeof(float) à a=4; поразрядное отрицание логическое отрицание арифметическое отрицание (унарный минус) получение адреса разыменование указателя выделение памяти освобождение памяти преобразование типа |
Бинарные операции
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 |


