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

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

Восстановить пароль Регистрация
 
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
09.11.2013, 23:47     Указатели #1
Почему такой вариант кода невозможен(конкретно: строка 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++ Указатели
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
09.11.2013, 23:55     Указатели #2
Тернарный оператор не так используется.
И вообще там в присваивании типы разные.
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
09.11.2013, 23:56  [ТС]     Указатели #3
ct0r, я даже с if'ом не могу такие шаги выполнять.
Цитата Сообщение от ct0r Посмотреть сообщение
в присваивании типы разные
int
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
09.11.2013, 23:58     Указатели #4
Во-первых, потому что *ptr это не сам указатель, а значение, на которое он указывает. Во-вторых, корректнее использовать тернарный оператор так:
C++
1
ptr=indicator>20 ? &x : &y;
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 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
Сообщений: 869
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++

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

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

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