Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базовый язык С++.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
52.17 Кб
Скачать

5. Встроенные типы данных и операции над ними. Тип void. Перечисления.

Int float double char bool – встроенные типы данных

Элементарные типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях таких как + - / *. Для их описания определены следующие ключевые слова:

  • bool (логический);

  • char (символьный);

  • int (целый);

  • float (вещественный);

  • double (вещественный с двойной точностью).

Первые три типа называют интегральными (целыми), последние два - типами с плавающей точкой.

Операции: + - * /

int f(int a, int b)

{

if(a==b) return 1;

else

return 0;

}

Тип void. Тип функции, который не возвращает значение, т.е. в конце функции нет return. Универсальный тип указателей. Еще используется в операциях приведения типов.

int f(int &k){

k*=2;

return k;

}

void main()

{

int y=3, k;

k=f(y);

cout<<y;

}

Перечисления.

Перечисление — это набор именованных целых констант.

Перечисление в общем виде выглядит так:

enum [ имя_типа ] { список_констант };

enum color { RED, GREEN, BLUE }; - именованные перечисления.

void f(color c)

{

switch(c){

case RED:

break;

case BLUE:

break;

}

}

6. Указатели и действия над ними.

int * p0 = &i; // - указатель на переменную

Указатель — это переменная, значением которой является адрес некоторого объекта (обычно другой переменной) в памяти компьютера. Например, если одна переменная содержит адрес другой переменной, то говорят, что первая переменная указывает (ссылается) на вторую.

С указателями можно выполнять следующие операции: разадресация (*), присваивание, сложение с константой, вычитание, инкремент (++), декремент (- -), сравнение, приведение типов. При работе с указателями часто используется операция получения адреса (&).

int a[10]

int *pa = a;

*pa = 3; //0 элементу массива присвоили 3

*(pa+2) = 5; //2 элементу массива присвоили 5

int *pa=a;

*(pa+2)=5;

*pi = 5;

void *vi = &i;

void *pa = pa;

int *ppi = (int*)vi; приведение типов

7. Явные и неявные преобразования типа. Составные типы данных и действия над ними.

Явные и неявные преобразования типов.

Еще один способ явного преобразования типов данных:

float(15) / 2 // результат равен 7.5, число 15 преобразуется в вещественный тип данных float.

double(15) / 2 // результат равен 7.5 – тоже самое!!!

Если указывать дробный тип то будет получаться не целое число, в это и заключается явное преобразование типов.

Неявное преобразование

Double b=1/2 – получаем double хоть и делим int/int!

Int a=3.14

Double d=2.

Составные типы данных и действия над ними.

Массивы, классы, структуры.

Действия над массивами(можно на одно и то же число разделить массивы): *+-

Над классами мы может делать только наследование, и со структурами тоже.

8. Класс памяти и модификатор const.

Спецификаторы класса памяти

Стандарт языка поддерживает четыре спецификатора класса памяти:

• auto — автоматическая (локальная), динамическая переменная. Автоматические переменные создаются при входе в функцию и уничтожаются при выходе из неё. Они видны только внутри функции или блока, в которых определены.

• static — статическая переменная (глобальная). Статические переменные имеют такую же область действия, как автоматические, но они не исчезают, когда содержащая их функция закончит свою работу. Компилятор хранит их значения от одного вызова функции до другого.

• extern — внешняя (глобальная) переменная. Внешние переменные доступны везде, где описаны, а не только там, где определены. Включение ключевого слова extern позволяет функции использовать внешнюю переменную, даже если она определяется позже в этом или другом файле.

• register — регистровая переменная (локальная). Это слово является всего лишь «пожеланием» компилятору помещать часто используемую переменную в регистры процессора для ускорения программы.

Auto, register – локальные классы памяти.

Extern, static - глобальные

По умолчанию любая глобальная функция extern.

Int n=2;

[extern] int n=2;

For(register int i=0; i<1000000; i++)

{

}

Общая форма объявления переменных при этом такова:

спецификатор_класса_памяти тип имя переменой;

Модификатор const

Модификатор const показывает, что значение переменной изменять нельзя.

Const [тип] имя = значение;

Если тип константы не указан, то тип по умолчанию integer, а если указан, то берется тот тип, который указан в [ ].

Const N=5;

Const double PI=3.14