Языки
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