Синтаксис C++

C++

Типы данных
Целочисленные: 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);
Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License