Лекция 2. Основные элементы языка С++
Основные элементы языка С++
Цели:
ü изучить структуру программы, написанной на языке С++, и основные понятия языка.
1. Структура С++ программы. Основные элементы языка С++
Структура программы, написанной на языке С++, выглядит следующим образом:
подключение головных файлов
запись макроопределений
описание глобальных переменных
int main ( ) // заголовок главной функции
{
описание переменных
текст программы//алгоритм
return 1; // завершение работы функции int main( )
}
1. Файл с программой на языке С++ вначале обрабатывает препроцессор, который распознаёт директивы препроцессора (каждая из них начинается с символа #) и выполняет их. Одной из таких директив является директива #include, которая используется для подключения головных файлов. Осуществляется эта возможность при помощи команды
#include < имя головного файла>
Подключение головных файлов необходимо для возможности работы с библиотечными (определёнными разработчиками языка) функциями, а также для возможности работы с функциями, описанными разработчиками
программы и помещёнными в некоторый головной файл.
Некоторые библиотечные головные файлы:
stdio.h – функции ввода-вывода информации, работы с файлами и др.;
math.h – математические функции;
string.h – работа со строками;
stdlib.h – работа с динамической памятью.
2. Запись макроопределений выполняется с помощью директивы
#define <имя_макропеременной> <определение_макропеременной>
При записи этой директивы между #define, <имя макропеременной> и <определение макропеременной> должны быть пробелы. Именем макропеременной может быть любая последовательность символов, не начинающаяся и не содержащая специальных символов. Под определением макропеременной понимается любая константа (числовая), любое арифметическое выражение, содержащее константу и имена макропеременных ранее определённых. В любом месте текста программы, где будет встречаться имя макропеременной, его будет заменять соответствующее макроопределение, описанное после директивы #define.
3. Текст программы, написанной на языке С++, содержит различные слова (имена переменных и констант, ключевые слова), операторы и выражения, которые формируются из символов алфавита языка С++ по правилам этого языка.
В алфавит языка С++ входят:
прописные и строчные буквы латинского алфавита;
цифры 0 1 2 3 4 5 6 7 8 9;
специальные знаки: " { } , | [ ] ( ) + - % \ ; ‘ : ? < = > _ ! & # ~ ^ . *
Текст программы начинается с объявления переменных. Под объявлением переменных понимаются строки:
<имя типа данных 1> <имя переменной 1>,…, <имя переменной N>;
…
<имя типа данных М> <имя переменной 1>,…, <имя переменной К>;
Пример объявления переменных:
int f, k; //объявлены две целочисленные переменные с именами f и k
float dr; //объявлена вещественная переменная с именем dr
char ch; //объявлена символьная переменная с именем ch
Таблица 1 | ||
Тип данных | Объем занимаемой оперативной памяти в байтах | Диапазон значений |
char | –128 ÷ 127 | |
unsigned char | 0 ÷ 255 | |
signed char | -128 ÷ 127 | |
int | –2147483648 ÷ 2147483647 |
Типы данных языка С++ приведены в табл.1.
Продолжение таблицы 1 | ||
unsigned int | 0 ÷ 4294967295 | |
signed int | -2147483648 ÷ 2147483647 | |
short int | -32768 ÷ 32767 | |
unsigned short int | 0 ÷ 65535 | |
signed short int | –32768 ÷ 32767 | |
long int | -2147483648 ÷ 2147483647 | |
unsigned long int | 0 ÷ 4294967295 | |
signed long int | -2147483648 ÷ 2147483647 | |
float | 3,4e-38 ÷ 3.4e+38 | |
double | 1.7e-308 ÷ 1.7e+308 | |
long double | 3.4е-4932 ÷ 1.1e+4932 |
При объявлении переменной под неё в оперативной памяти (ОП) отводится конкретное место (участок ОП). Размер участка оперативной памяти, который занимает переменная, определяется типом этой переменной. Для определения объема оперативной памяти, который занимает переменная какого-либо типа можно воспользоваться операцией sizeof(), например:
i=sizeof(int);
В этом примере значение переменной i будет равно 4.
При объявлении переменных можно сообщить им начальные значения путём помещения знака равенства после имени переменной. Этот процесс называется инициализациейи в общем случае имеет вид
<имя_типа_данных><имя_переменной1>=знач1,…,<имя_переменнойN>=значN;
Например:
int f = 10, k = 56;
Кроме переменных в программе могут быть использованы именованные и неименованные константы. Неименованная константа – число, именованная – идентификатор, которому поставлено в соответствие постоянное значение, не изменяющееся в процессе выполнения программы. Объявление констант выглядит следующим образом:
сonst <имя_типа_данных> <имя_константы1>=знач1,…,<имя_константыN>=значN;
При инициализации вещественных переменных и при определении вещественных констант вместо запятой в записи числа всегда ставится точка, например:
сonst float pi= 3.14159;
При задании имен переменных и констант нужно учитывать то обстоятельство, что компилятор С++ различает строковые и заглавные символы. Например, переменные с именами Alfa и alfa – это различные переменные.
4. Ключевое слово – это идентификатор, зарезервированный в языке для специального использования. В языке С++ используются ключевые слова:
asm | else | private | throw |
auto | enum | protected | try |
break | extern | public | typedef |
case | float | register | typeid |
catch | for | return | union |
char | friend | short | unsigned |
class | goto | signed | virtual |
const | if | sizeof | void |
continue | inline | static | volatile |
default | int | struct | while |
delete | long | switch | |
do | new | template | |
double | operator | this |
5. Операции в С++. Знаки операций обеспечивают формирование и последующее вычисление выражений. Выражение есть правило для получения значения. Один и тот же знак операции может употребляться в различных выражениях и по-разному интерпретироваться в зависимости от контекста. Для изображения операций в большинстве случаев используют несколько символов.
Операции подразделяют на унарные и бинарные. Унарными называются операции над одним операндом и пишутся, как правило, перед операндом. Бинарные операции – это операции над двумя операндами. К унарным операциям относятся:
* – взятие значения по адресу оперативной памяти;
& – это операция получения адреса;
- (унарный минус) – изменяет знак арифметического операнда;
+ – унарный плюс (введён для симметрии с унарным минусом);
~ – поразрядное инвертирование внутри двоичного кода целочисленного аргумента – побитовое отрицание;
! – логическое НЕ (отрицание);
К бинарным операциям относятся:
+ – бинарный плюс (сложение арифметических операндов или сложение указателя с целочисленным операндом);
- – бинарный минус (вычитание);
* – умножение двух операндов;
/ – целочисленное деление, в результате выполнения операции получается целое число;
% – остаток от деления;
<< – сдвиг влево битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого целочисленного операнда;
>> – сдвиг вправо битового представления значения правого целочисленного операнда на количество разрядов, равное значению левого целочисленного операнда;
& – логическое умножение;
| – логическое сложение;
^ – поразрядное исключение или битовых представлений значений целочисленных операндов;
<, <= – меньше, меньше или равно;
>, >= – больше, больше или равно;
= = – логическое равенство;
!= – не равно;
&& – логическое И;
| | – логическое ИЛИ;
?: – условное выражение;
= – операция присваивания.
При использовании операций в выражениях нужно учитывать приоритет операций (табл.2).
Таблица 2 | ||
Приоритеты операций | ||
Ранг | Операции | Смысл операции |
( ) [ ] –> . | Выражение в скобках Ограничитель индексов массива Указатель на поле структуры Ограничитель имени поля структуры | |
! ~ + - ++ -- & * sizeof(<имя_переменной>) (<тип_данных>) | Логическое НЕ Побитовое отрицание Унарный плюс Унарный минус Приращение на 1 Уменьшение на 1 Определение адреса Взятие значения по адресу Определение размера переменной в байтах Операция приведения к типу_данных | |
* / % | Умножение Целочисленное деление Остаток от деления | |
+ - | Сложение Вычитание | |
<< >> | Побитовые сдвиги | |
< <= > >= | Меньше Меньше или равно Больше Больше или равно | |
= = != | Логическое равно Не равно | |
& | && || ?: = , | Логическое умножение Логическое сложение Логическая операция и Логическая операция или Условное выражение Оператор присваивания Операция «запятая» |
Дата добавления: 2015-08-08; просмотров: 2464;