Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемcs.mipt.ru
2 Введение в язык программирования С++. Элементы языка общие с С. Полиморфизм. Инкапсуляция.
3 История 1970 – Dennis Ritchie разработал язык C для DEC PDP-11 в ОС UNIX – Bjarne Stroustrup в Bell Laboratory разработал язык C – American National Standart Institute утвердил стандарт, который поэтому называется ANSI – International Standards Organization ратифицирован стандарт языка.
4 Алфавит языка Буквы: A, B, …, Y, Z, a, b, …, y, z и символ _ Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Символы: +, -, *, /, >, =,
5 Зарезервированные слова asmdefaultfloatnewsignedunsigned autodeleteforoperatorsizeofvirtual breakdofriendprivatestaticvoid casedoublegotoprotectedstructvolatile charelseifpublicswitchwhile classenuminlineregisterthis constexplicitintreturntypedef continueexternlongshortunion
6 Идентификатор – последовательность буквенно- цифровых символов, начинающаяся с буквы, длиной до 1024 символов. Допустимые: count Test23 Ptr_1 Недопустимые: 1count sizeof Ptr…1
7 Базовые типы данных Целые длиной один байт – char 0 Целые длиной несколько байт – int х30 С плавающей точкой – float 48.f.48e2F Двойной точности - double e-1 Без значения - void
8 Специальные символьные константы \aСигнал\tГоризонтальная табуляция \fПодача бумаги\vВертикальная табуляция \nНовая строка\Одинарная кавычка \rВозврат каретки\хN\хNШестнадцатеричная или восьмеричная константа \?Знак вопроса\N \Двойная кавычка\b\bУдаление предыдущего символа \\Обратный слэш
9 Модификация базовых типов Со знаком – signed Короткое – short Без знака – unsignedДлинное – long 1 = sizeof(char) sizeof(short) sizeof(int) sizeof(long) sizeof(float) sizeof(double) sizeof(long double)
10 Пример: #include char c=\t; short s=1; int i; long l; void main() { float f; double d; long double D; cout
11 Спецификаторы класса памяти auto - Локальная переменная не существует за пределами области видимости. static - Значение переменной постоянно хранится внутри функции или файла. register -Обеспечить доступ к объекту так быстро, как только возможно. extern - Объявляемая переменная определена в другой части программы. extern int x;static int y=0;
12 Квалификаторы типа const – неизменяемые данные Переменная не может программно изменять своего значения const float e=2.71; volatile – подавление оптимизации Переменная может изменяться независимо от программы. NB: порядок вычисления выражений не определен! X = X1 + X2;
13 Оператор присваивания Множественное присваивание x = y = z = 0; Стенографическое присваивание x = 10; // x=x 10; Lvalue = Rvalue Lvalue и Rvalue - идентификаторы Lvalue – именующее выражение (адрес переменной) Rvalue – вычисляемое выражение (значение переменной)
14 Арифметические операции -Вычитание +Сложение *Умножение /Деление % Остаток от деления --Декремент ++Инкремент Пример float y,x = 5/3;//=1.0 y = 5./3;// =1.666… int k=1; ++k;// =2 int m=--k;// k--, m=k; int n=k++;// n=k, k++; // m=1, n=1
15 Операции сравнения и логические операции >Больше >=Больше или равно
16 Поразрядные операции &И&И |ИЛИ ^Сложение по модулю два ~Дополнение к 1 >>Сдвиг вправо 1; // 0110>>1=0011=3 x
17 Еще несколько операторов ?- условное выражение sizeof- определение размера операнда в байтах,- последовательного вычисления (тип)- явное преобразование к заданному типу :: - расширения области видимости y = x >= 0 ? 1 : -1; I = sizeof(int); J = sizeof I; int k=(y=J, 2*y); float z=(float)5/3; z=float(5)/3; int i; void main() { int i; i=1; ::i=2; …
18 Массивы Const int размер = …; Тип имя_переменной [размер]; int A[10]; Номер элемента1-й1-й2-й3-й4-й… Имя элементаA[0]A[1]A[2]A[3]… Адрес элемента a010c010e… int B[5][10];B[3,4] – не верноB[3][4] - верно
19 Указатели и ссылки Указатель – переменная, значением которой является адрес. int x[2],*Ptr_x; Ptr_x = &x[0]; *Ptr++=1; *Ptr=2; Ссылка – другое имя или еще одно имя объекта. NB: Может быть только инициализирована. int x[]={0,0},&b=x[0]; ++b+=1; *P*P&P & - операция получения адреса объекта * - операция «разыменования» указателя сout
20 Операторы выделения и освобождения памяти void* new(size_t) – возвращает адрес непрерывного участка памяти для объекта размерностью size_t байт. void delete(void*) – освобождает память, выделенную оператором new, начиная с адреса, на который ссылается указатель. Пример. const int ar_sz=10;ptr[1]=1.f; ptr[2]=2.f; void main() {delete ptr; float* ptr = new float[ar_sz];}
21 Массивы и указатели int x[]={1,2,3,4,5};int x[5]; const int *y=x; Описание Адрес элемента массива &x[3]y+3 Значение элемента массива x[3]*(y+3) Имя массива – неизменяемый указатель, инициализированный начальным значением.
22 Строки const int k=…; char str[k];// это ещё не строка str[0]=H; str[1]=e; str[2]=str[3]=l; str[4]=o; str[5]=\0; char str0={H,e,l,l,o,\0}; char* str1=Hello; - одномерные массивы символов, заканчивающиеся символом с кодом ноль (\0)
23 Двумерные массивы и двойные указатели const int ik=5, jk=10; void main() {int a[ik][jk]; int* b[]={a[0],a[1],a[2],a[3],a[4]}; int **c=b; int i=4, j=4; *(*b + i*jk +j)=10; cout
24 AA[0] A[0][0] … A[0][4]A[0][3]A[0][2]A[0][1] A[1][0] … A[1][4]A[1][3]A[1][2]A[1][1] A[2][0] … A[2][4]A[2][3]A[2][2]A[2][1] A[3][0] … A[3][4]A[3][3] A[3][2 ] A[3][1] A[4][0] … A[4][4]A[4][3] A[4][2 ] A[4][1] A[1] A[2] A[3] A[4] int* B[]; int **C;
25 Составные типы данных Структура – конгломерат переменных Объединение – наложение переменных Битовое поле – организация доступа к отдельным битам Перечисление – список именованных целых констант Имена типов, введенные пользователем: typedef тип новое_имя;
26 Структуры Формат описания: struct имя_шаблона { тип имя_члена; … тип имя_члена; } список_переменных; Пример struct complex { float re,im} a; Массивы структур: struct complex d[5]; Доступ к членам: complex c,*b=&c; a.re=0.; d[1].im=3.; *b.re=1.; b–>im=2.; Присваивание: c=*b; Имя_шаблона = тег reima Операции доступа к члену структуры:. – через переменную -> - через указатель
27 Объединения Формат описания: union тег { тип имя_члена; … тип имя_члена; } список_переменных; Пример: union { int i; struct {char h_b,l_b;} j; } a; il_bh_ba a.j.h_b = \0; a.j.l_b=1; cout
28 Битовые поля – члены структуры или объединения Формат: struct или union тег { тип имя: длина; … тип имя: длина; } список_переменных; Здесь тип – это int, signed, unsigned Пример: struct { int a:4; int b:4; char c; } c; c.a=0; c.b=3; c.c='\0'; void* ptr=&c; cout
29 Перечисление – набор именованных целых констант Формат: enum тег { список_перечисления } список_переменных; Пример enum {m,t,w,th,f,s,su} d; cout
30 Приоритеты операций Наивысший ::== != () [] ->.& ! ~ (type) & sizeof * new delete ^ | * / %&& + -|| >?: = > Наинизший =
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.