- •Глава 1. Основные понятия.
- •Общие сведения о программах, лексемах и алфавите
- •Процесс создания программы
- •Основные типы.
- •Основные типы данных
- •Глава 2. Создание консольных приложений в среде VisualStudio
- •1. Создание проекта
- •2. Начальный состав проекта
- •3. Добавление новых элементов в проект
- •Глава 4. Адреса, указатели, массивы, память
- •1. Указатели и адреса объектов
- •2. Указатели на функции
- •3. Ссылки
- •Глава 5. Структуры и объединения
- •1. Структура как тип и совокупность данных
Глава 1. Основные понятия.
Общие сведения о программах, лексемах и алфавите
Язык программирования представляет собой систему записи последовательности действий для реализации алгоритма решения поставленной задачи. Исходным документом является текстовый файл, содержащий необходимые допустимые записи, отвечающие синтаксическим правилам языка.
Алфавит содержит прописные и строчные буквы латинского алфавита, цифры – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и специальные знаки: “ { } , | [ ] + - / % \ ; ‘ : ? < = > _ ! & # ~ ^ . *. Из символов алфавита формируютсялексемы1языка:
идентификаторы;
ключевые слова (служебные или зарезервированные);
константы;
знаки операций;
разделители (знаки пунктуации).
Идентификатор– последовательность символов из букв латинского алфавита, десятичных цифр и символов подчеркивания, начинающихся не с цифры:Simol_54My_ProgrampumaPumaи так далее. Прописные и строчные буквы различаются, то есть последние два идентификатора различны.
asm |
double |
include |
switch |
auto |
else else |
new |
template |
break |
enum |
operator |
this |
case |
extern |
private |
throw |
catch |
float |
protected |
try |
char |
for |
public |
typedef |
class |
friend |
register |
typeid |
const |
goto |
return |
union |
continue |
if
|
short |
unsigned |
default |
include |
signed |
virtual |
delete |
inline |
sizeof |
void |
do |
int |
static |
volatile |
|
long |
struct |
while |
Константы - это лексема, представляющая собой изображение фиксированного числового, строкового или символьного значения. Численные константы – это конкретные целые или вещественные числа, записанные по обычным правилам: 1.28 4.36е3 45 -24. Символы – это одиночный символ, ограниченный апострофами: ‘a’ ‘e’ ‘0’ ‘1’ . Следует обратить внимание на то, что цифра, ограниченная символами этоне число, а символ. Строка символов это последовательность произвольных символов, ограниченная кавычками: “ Это строка символов” “1876” “ThisisString” . Целые константы могут быть десятичными, восьмеричными и шестнадцатеричными.
Разделители(знаки препинания) это точка с запятой (;) и запятая (,), служащие для разделения лексем. Кроме того, разделителями являются знаки операций и пробелы.
Знак операций– символ, обозначающий действие, которое необходимо выполнить. Знак операции обеспечивает формирование и последующее вычисление выражений. Один и тот же знак операции в различных контекстах интерпретируется по-разному. В стандарте языка Си определены следующие знаки операций:
[] () . -> ++ -- & * + - ~ !
sizeof / % << >> < > <= >= == != ^
| && || ?: = *= /= %= += -= <<= >>=
&= ^= |= , # ##
Дополнительно к перечисленным в языке Си++ введены следующие знаки операций
:: .* ->* newdeletetypeid.
За исключением операций [], () и ?: все знаки операций рассматриваются компилятором как отдельные лексемы. В зависимости от контекста одна и та же лексема может обозначать разные операции. Например, бинарная операция & - это поразрядная конъюнкция, а унарная операция & - получение адреса. Подробный разбор каждой из операций будет рассмотрен по мере изучения языка.
Операторы присваивания
Приоритеты операций представлены в приведенной ниже таблице
Ранг |
Операции |
Ассоциативность |
1 |
() [] -> :: . |
|
2 |
! ~ + - ++ -- & *(тип)sizeofnewdelete тип( ) (функциональное преобразование типа) |
|
3 |
.* ->* |
|
4 |
* / % (мультипликативные бинарные операции) |
|
5 |
+ - (аддитивные бинарные операции) |
|
6 |
<< >> |
|
7 |
< <= >= > |
|
8 |
== != |
|
9 |
& |
|
10 |
^ |
|
11 |
| |
|
12 |
&& |
|
13 |
|| |
|
14 |
?: (условная операция) |
|
15 |
= *= /= %= += -= &= ^= != <<= >>= |
|
16 |
, (операция запята) |
|
Комментарии– предназначаются для читающих программу для пояснения действий и содержания программы. Комментарии могут быть однострочными и начинаются символами // и оканчиваются признаком конца строки, или многострочными. Начало такого комментария начинается символами /* и заканчивается */ . Весь текст , заключенный между этими символами является комментарием. В комментариях допускается использование любых символов. При построении программы все комментарии игнорируются.