0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 50
1

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

11.03.2013, 06:06. Показов 828. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2013, 06:06
Ответы с готовыми решениями:

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

Не могу понять что это за операция?
Помогаю человеку с проектом на Java, сам на ней никогда не писал, так вот разгребая код я нашел это...

Я не могу понять что делает данная программа. Точнее что делают функции используемые в это коде
#include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;ctime&gt; using namespace std; int g(int a, int...

Что означает операция *=
Что означает данное выражение в Си? number *= 10;

4
Неэпический
17815 / 10586 / 2044
Регистрация: 27.09.2012
Сообщений: 26,628
Записей в блоге: 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
Модератор
Эксперт по электронике
8810 / 6593 / 895
Регистрация: 14.02.2011
Сообщений: 23,183
11.03.2013, 06:21 3
Цитата Сообщение от ilizard Посмотреть сообщение
((**p-1)***p)
а ты разбей и увидишь
C++
1
((**p-1) * **p)
т.е значение на которое указывает указатель на указатель p-1 умножить на значение на которое указывает указатель на указатель p
0
4299 / 1421 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
11.03.2013, 12:12 4
Чтоб понятней было, можно и так расписать:
C++
1
((p[0][0]-1) * p[0][0]);
0
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
11.03.2013, 13:11 5
Цитата Сообщение от ilizard Посмотреть сообщение
Все бы ничего, но совершенно не понимаю запись ((**p-1)***p)
что она означает??
Что руки оторвать нужно тому, кто это написал
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2013, 13:11
Помогаю со студенческими работами здесь

что означает операция?
int r = 0xFF &amp; (p &gt;&gt; 16); где p целочисленная переменная

Что означает данная конструкция?
Конкретно (str) и стрелка =&gt; let some = ( str ) =&gt; str... console.log( some( 'lorem' ) );

Что означает данная конструкция?
Изучаю по книге java, никогда не встречал пример подобных конструкций: Box b= new Box(){ ...

Что означает данная запись?
У меня есть такая инструкция: DELETE dbo.Payments FROM dbo.Transactions Что это значит? Не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru