- •Пространство имен.
- •Представление целых чисел
- •Определение переменных
- •Особенности использования некоторых типов данных: переполнение регистров переменных
- •Базовые конструкции структурного программирования
- •Условный оператор if
- •Ветвление процесса выполнения программ
- •Тема: Указатели и ссылки
- •Адреса переменных. Оператор взятия адреса
- •Указатели
- •Динамически распределяемая память
- •Указатели на объекты
- •Выделяют два основных отличия между статическими и динамическими объектами.
- •Перегрузка функций
- •Значения параметров функции, используемые по умолчанию
- •Определение массива
- •“Sdjdkjdhkfsdjhvm,c,bnmsierhoerhsdklfhbnasmbf”; //правильно Пустая строка записывается “ ” и имеет тип const char[1]. Использование датчика случайных чисел для формирования массива
- •Конструкторы и деструкторы
Структура программы на С++. Консольный ввод и вывод.
Пространство имен.
Пример.
#include <iostream>
int main( )
{
std ::cout << "Hello World! \n";
return 0;
}
Построчно рассмотрим назначение инструкций программы.
#include <iostream>
Подключение к файлу программы внешней библиотеки iostream.
При каждом запуске компилятора запускается препроцессор, он «читает» исходный текст программы, находит строки, начинающиеся с символа # и обрабатывает их перед началом компиляции программы. Файл iostream (Input-Output-Stream – поток вода/вывода1) используется объектом cout, который обслуживает процесс вывода данных на экран.
Каждый поток (за исключением строковых) ассоциируется как взаимодействие операционной системы с определенным внешним устройством.
Команда include (подключить) – также инструкция препроцессора, которая указывает, что далее следует имя файла, который необходимо найти и подключить. Угловые скобки, в которые заключается имя подключаемого файла, означают, что файл нужно искать во всех папках, отведенных для хранения подобных файлов.
int main( )
Вызов функции main( ).
Основной код программы начинается с вызова функции main(), ее содержит каждая программа на языке С++. Функция main() имеет тип int, что значит, а это означает, что по окончании работы функция возвратит операционной системе целое число. В данном случае будет возвращено число «0» (инструкция return 0). Возвращение значения в ОС не столь важно и самой системой почти не используется, указанная строка – всего лишь требование стандарта языка С++ к корректному объявлению функции main( ).
Все функции начинаются открывающей «{» и заканчиваются закрывающей «}» фигурной скобкой, между ними располагается тело функции.
std ::cout << "Hello World! \n";
Инструкция вывода на экран строки символов.
Каждый оператор в С++ должен заканчиваться точкой с запятой, «;» иначе называется признаком конца оператора.
Объект cout используется для вывода сообщений либо данных на консоль (экран) – Console Output. Этот объект содержится в стандартной библиотеке. Для указания же компилятору, что будет использован объект именно из нее, используется спецификация пространства имен std.
Пространство имен (namespace) – это некая объявляемая область, необходимая для того, чтобы избежать конфликта имен идентификаторов, объектов. Существует вероятность приобрести аналогичные объекты с тем же именем от другого поставщика программных компонентов, и чтобы компилятор «понял», частью какого пространства является используемый объект, перед словом cout помещается спецификация std в сопровождении двух двоеточий:
std :: cout.
За словом cout следует оператор перенаправления потока вывода ( символ << 2), все, что следует за этим оператором (правый операнд) выводится на экран. Например, следующая инструкция выводит на экран компьютера число, хранящееся в переменной с:
cout << c ;
Два заключительных символа строки – управляющие символы «\n», означают, что после строки текста необходимо выполнить переход на новую строку (обратный слэш «\» называется знаком перехода), т.е. все, что следует после символов «\n», будет показано с новой строки, сами символы на экран не выводятся.
Рассмотрим следующий фрагмент программного кода:
int a=5;
int b=16;
int c=a+b;
std::cout<< "There is variable c: "<<c<<"\n";
В последней строке объекту cout передаются три значения, и каждое отделяется оператором вывода: строка символов "There is variable c: "; значение переменной с; символы новой строки \n. Поскольку после первого значения нет символа начала новой строки, следующее значение выводится вслед за предыдущим:
There is variable c: 21_
К управляющим символам относятся так же:
оператор endl (сокращение от end line – конец строки), действие аналогично символу \n. Так можно записать тело функции main( ):
{
std::cout<< "Hello!";
std::cout<< std::endl;
std::cout<<3+6<< std::endl;
}
Результат работы программы:
Hello!
9
Press any key to continue_
Типы данных в С++. Определение переменных. Особенности использования некоторых типов данных, переполнение регистров переменных.
Переменная – место в оперативной памяти компьютера (RAM – Random Access Memory), где можно размещать хранимое значение, а затем извлекать его для дальнейшего использования. Значение сохраняется в переменной до выключения компьютера.
Определяя переменную в С++, необходимо предоставить компилятору информацию о ее типе. Тогда компилятор будет знать, сколько место (какой объем оперативной памяти) нужно зарезервировать для хранения переменной, и какого рода значения будут в ней храниться.
В оперативной памяти любой тип занимает определенный объем, но у различных типов компьютеров он может оказаться разным. Тип integer (целое число) может иметь размер в два байта на одной машине и четыре на другой, но в пределах одного компьютера он будет одним и тем же. Размер целого числа определяется системой компьютера (16- или 32-разрядная) и используется компилятором.
Задача определения размеров переменных различных типов на конкретном компьютере может быть решена с использованием функции sizeof( ). Функция поддерживается каждым компилятором, и возвращает размер объекта, переданного ей в качестве параметра. Например запись вида sizeof(int) позволит получить размер переменной типа int.
Таблица 1
Тип данных |
Размер в байтах |
Диапазон |
char
|
1 |
-128 - 127 (256 значений символов) |
unsigned char
|
1 |
0 - 255 |
bool
|
1 |
true или false |
unsigned short int (unsigned short) |
2 |
0 - 65 535 |
short int (short)
|
2 |
-32 768 - 32 767 |
unsigned long int (unsigned long) |
4 |
0 - 4 294 967 295 |
long int (long)
|
4 |
-2 147 483 648 - 2 147 483 647 |
unsigned int (unsigned) |
2 или 4 (16/32 байта) |
0 - 65 535 или 0 - 4 294 967 295 |
int |
2 или 4 (16/32 байта) |
-32 768 - 32 767 или -2 147 483 648 - 2 147 483 647 |
float
|
4 |
1, 2е-38 - 3,4е38 |
double
|
8 |
2, 2е-308 - 1,8е308 |