Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ilizard
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 50
#1

Не могу понять, что означает данная операция с указателями - C++

11.03.2013, 06:06. Просмотров 333. Ответов 4
Метки нет (Все метки)

вот такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <conio.h>
using namespace std;
int rrr2 (int **p) 
{return ((**p-1)***p);};
 
 
void main () 
{
   int n=2, *nn = &n;
   cout << (p);
    getch();}
Все бы ничего, но совершенно не понимаю запись ((**p-1)***p)
что она означает??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 06:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не могу понять, что означает данная операция с указателями (C++):

Не могу что-то понять с указателями - C++
Объясните мне,пожалуйста, почему когда я пишу так: void main() { char arr=&quot;erbb45&quot;; char *parr = &amp;arr; cout &lt;&lt; hex; ...

Что означает данная запись - C++
Добрый день Имеется простой класс Class Test { public: unsigned a : 1; unsigned b : 1; };

Что означает данная строка. Указатели - C++
void varInDynamicMemory(){ int *p1; int i=12; float *p2; float f=3.14; double *p3; double d=4.789; cout&lt;&lt;&quot;Исходные значения...

Что означает данная строчка кода? - C++
#define MASSIZE(x) (sizeof(x)/sizeof(x)) можете пожалуйста объяснить что это значит?

что означает данная строчка? &operator - C++
что это означает? (Tabl это класс) friend ofstream &amp;operator &lt;&lt; ( ofstream &amp;outf, Tabl MyTabl ) я так понимаю объявляется...

Нюансы синтаксиса: что означает данная запись - C++
Всем привет! VS2010, консольный проект C++. По ошибке написал: int b = (5, 4, 11, 56, 18, 0); IntSet is2(n, (5, 4, 11, 56, 18,...

4
Croessmah
Ушел
13783 / 8033 / 928
Регистрация: 27.09.2012
Сообщений: 19,803
Записей в блоге: 3
Завершенные тесты: 1
11.03.2013, 06:20 #2
(**p-1)
разыменовываем дважды двойной указатель, тем самым получаем значение int, на которое указывал указатель *p и вычитаем от него 1.
***p
Это лучше записать так:
C++
1
* **p
имхо, так понятнее выглядит.

Добавлено через 19 секунд
Цитата Сообщение от ilizard Посмотреть сообщение
C++
1
cout << (p);
В функции main нет p
0
ValeryS
Модератор
7020 / 5358 / 531
Регистрация: 14.02.2011
Сообщений: 18,079
11.03.2013, 06:21 #3
Цитата Сообщение от ilizard Посмотреть сообщение
((**p-1)***p)
а ты разбей и увидишь
C++
1
((**p-1) * **p)
т.е значение на которое указывает указатель на указатель p-1 умножить на значение на которое указывает указатель на указатель p
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
11.03.2013, 12:12 #4
Чтоб понятней было, можно и так расписать:
C++
1
((p[0][0]-1) * p[0][0]);
0
ITcrusader
Эксперт С++
177 / 163 / 8
Регистрация: 12.02.2013
Сообщений: 410
11.03.2013, 13:11 #5
Цитата Сообщение от ilizard Посмотреть сообщение
Все бы ничего, но совершенно не понимаю запись ((**p-1)***p)
что она означает??
Что руки оторвать нужно тому, кто это написал
0
11.03.2013, 13:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 13:11
Привет! Вот еще темы с ответами:

Операция с указателями - C++
SomeClass* ptr = sc1; SomeClass* ptr2 = ptr1; как имея только ptr2 изменить указатель ptr (изменить переменную, на которую ссылается ptr)...

не могу понять что не так - C++
задание такое : Структура &quot;книга почтой&quot;:-наименование книги;-ФИО автора;-номер по каталогу;-издательство;-колличество в...

не могу понять что с выводом - C++
помогите найти косяк,у меня при отрицательном &quot;a&quot; он выдаёт результат и &quot;error&quot; хотя должен только &quot;error&quot; таже проблема если b=0 a&gt;0 ...

что не верно? не могу понять. - C++
программа должна оборачивать каждое слово в предложении. (например &quot;пришел&quot;, а выведет &quot;леширп&quot;) #include &quot;stdio.h&quot; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru