Типы данных
Целочисленные: char ('a'), short, int (42), long (123454L),
Целочисленные могут быть беззнаковыми, unsigned int - 13U, unsigned long 13LU
Числа с плавающей точкой: float (7 значащих цифр, 3.14), double (15 значащих цифр, 2.71F) (3.0E8 = 3.0 * 10^8)
Логический тип данных: bool (true, false)
Пустой тип: void
Строка: const char *s = "C-style string";
Операции
оператор присваивания: =
арифметические бинарные: +, -, *, /, % и унарные: ++, —
логические бинарные: &&, || и унарные: !
сравнения: ==, !=, >, <, >=, <=
приведения типов: (type)
сокращенные версии бинарных операторов: +=, -=, *=, /=, %=
Условные операторы
if(expression){ }else if (expression){ } else { }
bool toots = (expression) ? true : false;
while (expression){ //while expression is true }
for (int k=0; k<10; k=k+1){ }
break; - выход из цикла
continue; - прерывает текущию итерацию
Функции
double square(double x){ return x*x; } void strange(double x, double y){ x = y; }
Макросы
команды отробатывают в момент компиляции
#include - включение одного файла в другой
#ifndef FLAG //если флаг не поднять = false #define FLAG //переводим флаг в true int bar(); //тогда заходим внутрь и включаем этот код #endif
#pragma once - добавляеться в .hpp файлы и компилятор поймет что нужно этот файл включать только один раз
Объявление (declaration)
int a; — объявление переменной типа int,
void foo(); — объявление функции с именем foo,
void bar() { foo(); } — объявление функции с именем bar.
Директивы
Все директивы начинаються со знака #
#include - позволяет подключать заголовочные файлы к файлам кодаю
#include <foo.h> - библиотечный заголовочный файл
#include "bar.h" - локальный заголовочный файл
Массивы
//массив 1 2 3 4 5 0 0 0 0 0 int m[10] = {1, 2, 3, 4, 5}; //Массивы и указатели int * p = &m[0]; //адрес начало массива int * q = &m[9]; //адрес конец массива //(p+k) - сдвиг на "k" ячеек типа int вправо //(p-k) - сдвиг на "k" ячеек типа int влево //(q-p) - количество ячеек между указателями //p[k] эквивалентно *(p+k) //заполнение массива используя указатели for(int * p = m; p<=m+9; ++p){ *p = value; }
Указатели
Указатель - это переменная хранящая адрес некоторой ячейки памяти
Указатели являются типизированными.
Операторы для работы с указателями:
"&" - оператор взятия адреса переменой
"*" - оператор разыменования
int i = 9; //переменная типа int int * p = 0; //указатель на переменную типа int, //Нулевому указателю (которому присвоено значение 0) не соответствует никакая ячейка памяти. p = &i; //указатель "p" указывает на перемную "i" *p = 10; //изменяется ячейка по адресу "p" , меняется значение а не адрес
void swap(int * a, int * b){ int t = *a; *a = *b; *a = t; } int main(){ int k = 10; int b = 20; swap(&k, &b); return 0; }
Работа с текстом
#include <cstring> char str[100] = "left part"; strcat(str, " right part"); size_t length = strlen(str);
Работа с массивом
//сортировка #include <algorithm> //здесь объявлена функция sort using namespace std; int a[100] = { ... }; sort(a, a + 100); //поиск минимального и максимального числа int *minptr = min_element(a, a + 100); int *maxptr = max_element(a, a + 100);