Форум программистов, компьютерный форум CyberForum.ru

Указатели не могу понять - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Быстрая проверка натурального числа на простоту http://www.cyberforum.ru/cpp-beginners/thread660361.html
Часто возникает задача проверки натурального числа на простоту. При этом имеются вероятностные и детерминированные методы проверки. Здесь рассматриваются только детерминированные алгоритмы, дающие 100% ответ на вопрос о простоте. Хорошо известно такое утверждение: если натуральное число n>1 не делится ни на одно простое число, не превосходящее \sqrt{n}, то оно простое. В связи с этим...
C++ Фоновая коррекция изображения Мне надо написать прогу, которая корректировала бы фон изображения по алгоритму:Для каждого пикселя изображения 3 (результат) : (R3,G3,B3)=(R2-R1,G2-G1,B2-B1)+Del, где Del это значение scrollbar от -255 до 255, R1,G1,B1 - значения пикселей фона, R2,G2,B2 - значение пикселей изображения, которое надо изменить. Вот код: void __fastcall TForm1::ScrollBar1Change(TObject *Sender) { int... http://www.cyberforum.ru/cpp-beginners/thread660353.html
C++ выполните расчет стоимости, использованного интернет-трафика
помогите пожалуйста, написать программу в visual c++: Выполните расчет стоимости, использованного интернет-трафика, если в ночные часы предоставляется скидка в 20%. (стоимость мегабайта и время начала скачивания вводятся пользователем, тариф определяется по времени начала). Добавлено через 1 час 16 минут как я поняла, мне нужно ввести с клавиатуры стоимость мегабайта и время суток. если это...
Элементарный математический код, но почему то всегда равно 0,0000 C++
Элементарный математический код, но почему то всегда равно 0,0000. Тут я еще использую старые функции ввода-вывода, потому что так надо на лабораторную. Вот код: #include<iostream> #include<stdio.h> #include<conio.h> #include<math.h> using namespace std; int main() {
C++ Нахождение суммы ряда с заданной точностью http://www.cyberforum.ru/cpp-beginners/thread660307.html
Помогите решить задачу что то не как не могу определить с чего начать.
C++ Количество точек с целочисленными координатами внутри (не включая границ) произвольного многоугольника Есть вот такая задача. Координаты вершин подаются в порядке обхода по часовой стрелке, многоугольник может быть и невыпуклым. Решение будет основываться на исп. формулы Пика, однако есть 2 проблемы: 1) Как найти площадь такого многоугольника по координатам вершин (прошу растолковать формулу или поделиться ссылкой на источник). 2) Определение кол - ва целочисленных точек на сторонах. Спасибо. подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.09.2012, 20:30     Указатели не могу понять
Указатель - переменная, значением которой является адрес другой переменной. Знак *, при объявлении указателя, говорит о том, что переменная, перед которой он стоит, является переменной-указателем. В других случаях, этот знак перед указателем, означает операцию разыменования указателя, т.е. получение той переменной, адрес которой содержится в указателе. Например:
C++
1
2
3
int a = 4;
int *ptr = &a; указателю на int присваивается адрес переменной a
*ptr = 8; // разыменование указателя, т.е. получение переменной a и присвоение ей нового значения 8
При объявлении указателя, то что стоит слева от * относится к той переменной, адрес которой содержит указатель, а то, что стоит справа от *, к самой переменной-указателю.

Если указатель объявлен как указатель на константу:
C++
1
2
int a = 4;
const int *ptr = &a; // указателю на константу присваивается адрес переменной a
, то через такой указатель нельзя изменять переменную, адрес которой он содержит. Например, такой код вызовет ошибку:
C++
1
*ptr = 5;
Указатель на константу может быть только константным.

Такая запись:

C++
1
int *const ptr = &a;
говорит о том, что объявляется константный указатель на неконстантную переменную int, и ему присваивается адрес переменной a. Значение такого указателя нельзя менять. То есть, попытка присвоить такому указателю какой-нибудь другой адрес вызовет ошибку. Например:

C++
1
2
3
4
int a = 4;
int b = 6;
int *const ptr = &a;
ptr = &b; // ошибка
Указатель на указатель - это переменная, значением которой является адрес переменной-указателя. Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 4;
int *ptr = &a; // ptr - переменная-указатель на itn. Содержит адрес переменной а.
int **ptrptr = &ptr; // ptrptr - переменная-указатель на указатель на int. Содержит адрес ptr, переменной-указателя на int
 
int a = 4;
int b = 5;
int *ptr = &a; 
int **ptrptr = &ptr;
*ptr = 8; // а присваиваем 8
**ptrptr = 8; //  то же самое
ptr = &b; // переменной-указателю  на int - ptr присваиваем другое значение, адрес перменной b
*ptrptr = &b; // то же самое
int d = 2;
int *ptrd = &d; 
ptrptr = &ptrd; // указателю на указатель на int - ptrptr присваивается новое значение, адрес указателя ptrd
 
Текущее время: 04:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru