Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л.3_Базовые_и_производные_типы.doc
Скачиваний:
6
Добавлен:
04.11.2018
Размер:
327.17 Кб
Скачать

Определение и инициализация переменных целых типов

int k, ix, iy=1, iz; //определение и инициализация переменных int i = 0xabcd, j=04567, k (1); //0xabcd – значение в 16-ой с/с; 04567 – в 8-ичной с/с unsigned uk; // эквивалентно записи unsigned int uk;

short shk, shl, shm = 4; // эквивалентно записи short int shk, shl, shm=4; unsigned short ushk; //в идентификаторе переменной как бы «кодируем» ее тип

long lk; // эквивалентно записи long int lk; unsigned long ulk (12345); //определение и инициализация переменной

int iarray[10]; //определение массива из 10 значений элементов // iarray[0] - iarray[9] типа int

При обработке оператора инициализации переменной компилятор выделяет ей память в соответствии с типом и инициализирует указанным значением.

Определение и инициализация переменных вещественных типов

float x = 4.7; //или float x (4.7);

double y = 3.141592, z = 0.6E-02;

float fx (3);

double dy (3.141592);

Определение и инициализация переменных булевского типа

bool b( true); // хотя компилятор не выдает ошибку и при инициализации bool b(1);

bool b1 = false;

bool b2 = bool (-25); //b2 получит значение true

Пример использования переменных булевского типа:

int main() {

bool b = false;

cout << “b = ” << b << endl; //0

return 0;

}

int main() {

bool b = false;

cout << “b = ”; if (b) cout << ”true”;

else cout << ”false”;

cout << endl; return 0; }

Определение и инициализация переменных символьного типа

char ch1 (’:’), symbol =’d’;

char c1=58; //числовой код символа « : », однако инициализируя так переменную, /* мы уменьшаем или даже вообще ликвидируем такое свойство программы, как «переносимость»*/ cout << c1 <<” ” << ch1 << endl; // выведет : :

char first =’\n’; //инициализация ESC-последовательностью \n char ch2 = ’\’’; // инициализация символом «»

cout << ch2 << endl; // вывод на экран символа «»

char ch3 = ’\х3f’, с3(’?’); // ESC-последовательность \х3f задает в 16 с/с код символа «?» // \х3f = 3f16 = 3*16+f = 3*16+15 = 6310

cout << ch3 << ” ” << c3 << endl; //выведет ? ?

cout << "\x3f \? "; // выведет ? ?

cout << ‘\77 ‘ << endl; // выведет ?

Эквивалентные операторы:

cout << ‘z’ и cout.put(‘z’); !!!

Определение и инициализация переменных-указателей

Можно определить переменные для хранения адресов областей памяти.

Указатель – переменная, содержащая адрес. Тип указателя определяет тип данных, на который он может ссылаться. По описанию указателя компилятор получает информацию:

    • о длине области памяти, на которую ссылается указатель (которую занимает переменная, на которую он ссылается);

    • о способе интерпретации данных в этой области памяти.

Указатель может ссылаться на константу или на переменную и сам может быть константой или переменной.

Примеры указателей:

int i; //определение переменной целого типа

double d; // определение вещественной переменной

const int ci = 1; //целая типизированная константа

int *pi=&i; //определение и инициализация указателя pi на переменную типа int

*pi = 5; //присваивание значения переменной i //с использованием операции разыменования *

double *pd = &d; // определение и инициализация указателя pd на переменную типа double

*pd = 7.8; //присваивание переменной d значения // через разыменование значения указателя pd

const int *pci; //указатель pci на константу типа int

int *const cp = &i; //указатель-константа cp на переменную типа int const int *const cpc = &ci; //указатель-константа cpc на константу типа int void f (int a) {…..} //определение функции с аргументом типа int, ничего не возвращающей

void (*pf)(int); //указатель на функцию с аргументом типа int, ничего не возвращающую

pf = f; //присваивание указателю на функцию pf адреса функции f

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

Тип void используется:

  • для определения функций, которые не возвращают значения,

  • для указания пустого списка аргументов функции,

  • как базовый тип для указателей

  • в операции приведения типа.