Языки

C++ Tutorial for Beginners - Full Course

⌨️ (0:00:00) Introduction
⌨️ (0:01:38) Windows Installation
⌨️ (0:04:54) Mac Installation
⌨️ (0:08:44) Setup & Hello World
⌨️ (0:12:29) Drawing a Shape
⌨️ (0:19:55) Variables
⌨️ (0:31:43) Data Types
⌨️ (0:39:15) Working With Strings
⌨️ (0:49:00) Working With Numbers
⌨️ (0:59:41) Getting User Input
⌨️ (1:05:32) Building a Calculator
⌨️ (1:09:28) Building a Mad Libs
⌨️ (1:13:45) Arrays
⌨️ (1:20:03) Functions
⌨️ (1:29:47) Return Statement
⌨️ (1:35:22) If Statements
⌨️ (1:47:15) If Statements (con't)
⌨️ (1:55:58) Building a Better Calculator
⌨️ (2:02:20) Switch Statements
⌨️ (2:10:47) While Loops
⌨️ (2:18:53) Building a Guessing Game
⌨️ (2:29:18) For Loops
⌨️ (2:38:32) Exponent Function
⌨️ (2:45:21) 2d Arrays & Nested Loops
⌨️ (2:54:55) Comments
⌨️ (2:59:11) Pointers
⌨️ (3:13:26) Classes & Objects
⌨️ (3:25:40) Constructor Functions
⌨️ (3:34:41) Object Functions
⌨️ (3:41:43) Getters & Setters
⌨️ (3:54:04) Inheritance

 

Указатели в С

https://metanit.com/c/tutorial/5.1.php

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

 

Для определения указателя надо указать тип объекта, на который указывает указатель, и символ звездочки *.
тип_данных* название_указателя;

int main(void)
{
    int x = 10;     // определяем переменную
    int *p;         // определяем указатель
    p = &x;         // указатель получает адрес переменной
    return 0;
}


Указатель хранит адрес объекта в памяти компьютера. И для получения адреса к переменной применяется операция &. Эта операция применяется только к таким объектам, которые хранятся в памяти компьютера, то есть к переменным и элементам массива.
Что важно, переменная x имеет тип int, и указатель, который указывает на ее адрес тоже имеет тип int. То есть должно быть соответствие по типу.
Какой именно адрес имеет переменная x? Для вывода значения указателя можно использовать специальный спецификатор %p:
#include <stdio.h>
 
int main(void)
{
    int x = 10;
    int *p;
    p = &x;
    printf("%p \n", p);     // 0060FEA8
    return 0;
}


Стоит отметить, что при выводе адреса указателя функция printf() ожидает, что указатель будет представлять void*, то есть указатель на значение типа void. Поэтому некоторые компиляторы при некоторых настройках могут при компиляции отображать предупреждения. И чтобы было все канонически правильно, то переданный указатель нужно преобразовать в указатель типа void *:
printf("%p \n", (void *)p);


... мы можем по этому адресу получить хранящееся там значение, то есть значение переменной x. Для этого применяется операция * или операция разыменования (dereference operator). Результатом этой операции всегда является объект, на который указывает указатель. 

 

...
И также используя указатель, мы можем менять значение по адресу, который хранится в указателе:
int x = 10;
int *p = &x;
*p = 45;
printf("x = %d \n", x);  // 45

РСА:
"имя_указателя"=значение // меняет значение самого указателя
* "имя_указателя"=значение // меняет значение объекта, адрес которого хранится в указателе


Указателю можно присвоить либо адрес объекта того же типа, либо значение другого указателя или константу NULL.

 

Вот язык С++ хвалят­

https://metanit.com/cpp/tutorial/1.1.php


Вот четкое описание С++ на английском https://cplusplus.com/doc/tutorial/

 

вот пример про указатели https://cplusplus.com/doc/tutorial/pointers/

 

Установка Visual Studio, версия Community

https://visualstudio.microsoft.com/ru/vs/

https://visualstudio.microsoft.com/ru/vs/community/

скачать и доп инфа https://visualstudio.microsoft.com/ru/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false

поддерживает С,С++,С#, python