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

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

Войти
Регистрация
Восстановить пароль
 
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
#1

Указатели - C++

09.11.2013, 23:47. Просмотров 212. Ответов 8
Метки нет (Все метки)

Почему такой вариант кода невозможен(конкретно: строка 6)?
C++
1
2
3
4
5
6
7
8
int indicator, x = 15, y = 10;
    int *ptr;
 
    cin >> indicator;
 
    indicator > 20 ? *ptr = &x : *ptr = &y;
 
    cout << *ptr * *ptr * *ptr << endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2013, 23:47     Указатели
Посмотрите здесь:

Указатели C++
C++ Указатели
C++ указатели
Указатели C++
C++ Указатели в С++
C++ Указатели
C++ указатели в С
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ct0r
Игогошка!
 Аватар для ct0r
1669 / 595 / 41
Регистрация: 19.08.2012
Сообщений: 1,219
Завершенные тесты: 1
09.11.2013, 23:55     Указатели #2
Тернарный оператор не так используется.
И вообще там в присваивании типы разные.
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 23:56  [ТС]     Указатели #3
ct0r, я даже с if'ом не могу такие шаги выполнять.
Цитата Сообщение от ct0r Посмотреть сообщение
в присваивании типы разные
int
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
09.11.2013, 23:58     Указатели #4
Во-первых, потому что *ptr это не сам указатель, а значение, на которое он указывает. Во-вторых, корректнее использовать тернарный оператор так:
C++
1
ptr=indicator>20 ? &x : &y;
ct0r
Игогошка!
 Аватар для ct0r
1669 / 595 / 41
Регистрация: 19.08.2012
Сообщений: 1,219
Завершенные тесты: 1
10.11.2013, 00:01     Указатели #5
Цитата Сообщение от Ryuk Посмотреть сообщение
int
там int и int*, очевидно же
nokados
27 / 27 / 5
Регистрация: 30.04.2012
Сообщений: 132
10.11.2013, 00:01     Указатели #6
Ты делаешь указатель на адрес памяти.
можно делать так:
C++
1
ptr = &x;
, если х менять не собираешься
Но лучше
C++
1
*ptr = x;
Если тебе нужен именно адрес, то возможно сработает двойной указатель (но я хз, ибо сам такое ни разу не использовал)
C++
1
2
int **ptr;
*ptr = &x
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
10.11.2013, 00:01  [ТС]     Указатели #7
Kuzia domovenok, я пытаюсь понять указатели. Вот что надумал: указатели позволяют творить нам такую фигню, чтобы функцию можно было использовать для различных аргументов или нет? И по поводу работы с памятью, мы выделяем кусок память и тем самым делаем как бы большой массив, в котором все элементы идут по порядку?
nokados
27 / 27 / 5
Регистрация: 30.04.2012
Сообщений: 132
10.11.2013, 00:06     Указатели #8
C++
1
*ptr = &x
Может использоваться при создании ptr, то есть так:
C++
1
int* ptr=indicator>20 ? &x : &y;
Добавлено через 2 минуты
Цитата Сообщение от Ryuk Посмотреть сообщение
я пытаюсь понять указатели
Могу посоветовать посмотреть эти уроки. Сразу становится все ясно да понятно.
Начиная с этого и еще 2 следующих
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 00:17     Указатели
Еще ссылки по теме:

Указатели в С C++
Указатели C++
Указатели C++
Указатели C++
C++ Указатели

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

Или воспользуйтесь поиском по форуму:
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
10.11.2013, 00:17  [ТС]     Указатели #9
nokados, спасибо большое. Когда-то видел эти уроки, но отнесся к ним скептически.
Yandex
Объявления
10.11.2013, 00:17     Указатели
Ответ Создать тему
Опции темы

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