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

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

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

Указатели(Какую роль выполняют &* и *&) - C++

20.01.2013, 20:45. Просмотров 653. Ответов 14
Метки нет (Все метки)

Всем доброго вечера. Возникла проблема. Помогите решить ее.
Какую роль выполняют &* и *& . Если возможно приведите примеры пожалуйста =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 20:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатели(Какую роль выполняют &* и *&) (C++):

Какую роль выполняют идентификаторы в приведенном коде? - C++
Подскажите пожалуйста,какие в данной задаче идентификаторы и их назначение в ней. #include <iostream> #include <algorithm> #include...

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;) - C++
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef A_H #define A_H #include &lt;string&gt; class A { ...

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration? - C++
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp; outs, const Rational&amp;); - invalid function declaration. ...

В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9& - C++
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура...

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? - C++
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size; ix++) cout &lt;&lt; setw(5) &lt;&lt; ptr; // вывод элементов...

Порядок вычисления: операторы «|» и «||», «&» и «&&» - C++
В Java булевые операторы «|» и «||», и «&amp;» и «&amp;&amp;» отличаются друг от друга порядком вычеслений, а в C++ так же как и в Java или...

14
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2013, 21:10 #2
Vahram1995, у них одинаковый приоритет. Поэтому ничего они не делают.

Цитата Сообщение от Vahram1995 Посмотреть сообщение
&*
Здесь переход от итеретора к указателю. Возможен такой вариант.
1
Croessmah
Эксперт CЭксперт С++
13514 / 7672 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
20.01.2013, 21:15 #3
Цитата Сообщение от Vahram1995 Посмотреть сообщение
*&
как вариант - ссылка на указатель:
C++
1
int *& lnk=int_pointer;
Добавлено через 2 минуты
И еще, например, вот такой бред:
C++
1
2
3
4
5
6
7
#include <iostream>
int main(){
    int x=14;
    int * p=&x;
    std::cout<<*&*&*&x<<std::endl;
    std::cout<<&*&*&*p<<std::endl;
}
1
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
20.01.2013, 21:29 #4
Ну вообще говоря о указателях:
Операции & и * являются обратными друг
другу — последовательно применяемые к указателю в любом порядке, эти операции
«взаимно сокращаются».
Что в принципе логично, если понимать смысл этих операций.
1
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
20.01.2013, 21:34 #5
Разыменовать (*) не каждую сущность можно.
0
Vahram1995
1 / 1 / 0
Регистрация: 20.01.2013
Сообщений: 74
20.01.2013, 21:40  [ТС] #6
Цитата Сообщение от Toshkarik Посмотреть сообщение
Операции & и * являются обратными друг
другу — последовательно применяемые к указателю в любом порядке, эти операции
«взаимно сокращаются».
Но в коде можно так писать или компилятор выдаст ошибку?
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
20.01.2013, 21:44 #7
Vahram1995, писать можно, но это бессмысленно.
1
Vahram1995
1 / 1 / 0
Регистрация: 20.01.2013
Сообщений: 74
20.01.2013, 21:47  [ТС] #8
Цитата Сообщение от Croessmah Посмотреть сообщение
как вариант - ссылка на указатель: Код C++1
int *& lnk=int_pointer;
То есть lnk и int_pointer указатели
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
20.01.2013, 21:57 #9
Vahram1995, нет, lnk это ссылка на указатель.

Добавлено через 8 минут
Vahram1995, Вы видать немного запутались. Вам всего лишь нужно различать эти операции при объявлении и при использовании.
0
Vahram1995
1 / 1 / 0
Регистрация: 20.01.2013
Сообщений: 74
20.01.2013, 22:09  [ТС] #10
C++
1
2
3
4
int a; 
int *p = &a; // указатель 
int &r = a; // ссылка на a 
int *& rp = p; // ссылка на указатель p
Я все правильно понял?
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
20.01.2013, 22:11 #11
Vahram1995, да, все верно.
0
Vahram1995
1 / 1 / 0
Регистрация: 20.01.2013
Сообщений: 74
20.01.2013, 22:20  [ТС] #12
А указателя на ссылку не существует?
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
20.01.2013, 22:23 #13
Vahram1995, смотря что Вы под этим имеете ввиду.
0
Vahram1995
1 / 1 / 0
Регистрация: 20.01.2013
Сообщений: 74
20.01.2013, 22:49  [ТС] #14
int &* rp = p;
или
int &t = *p;
0
Croessmah
Эксперт CЭксперт С++
13514 / 7672 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
20.01.2013, 22:56 #15
Цитата Сообщение от Vahram1995 Посмотреть сообщение
А указателя на ссылку не существует?
нет.
1
20.01.2013, 22:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2013, 22:56
Привет! Вот еще темы с ответами:

Friend ostream& operator<<(ostream& stream, CArr& obj); - C++
CArr.h #pragma once class CArr{ int* arr = nullptr; int size = 10; void swap(int *a, int *b); void swap(int &amp;a, int &amp;b); ...

Выделение памяти для буффера, под std::istream& operator>>(std::istream &, String &) - C++
Добрый день. Как осуществляется выделения памяти под перегруженный оператор ввода данных в пользовательский тип? Ведь мы заранее не можем...

Указатели и ссылки (& vs * ) - C++
Объясните в двух словах отличие - принципиальное. и в каких ситуациях что продуктивнее использовать ?

Как проверить, принадлежит ли символ заданному диапазону m...n, кроме if (c <= n && c >= m) ? - C++
есть какая-нибудь более короткая запись для проверки, принадлежит ли символ заданному диапазону m...n, кроме if (c &lt;= n &amp;&amp; c &gt;= m) ...


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

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

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