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

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

Войти
Регистрация
Восстановить пароль
 
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
#1

Указатели и Ссылки - C++

13.03.2012, 15:53. Просмотров 574. Ответов 8
Метки нет (Все метки)

извеняюсь,но никак не могу понять.
C++
1
2
3
4
5
6
7
int sum(int* inLeft, int* inRight)
{
    if(inLeft == inRight)
        return *inLeft;
    else
        return *inRight + sum(inLeft, --inRight);
}
1) строка int sum(int* inLeft, int* inRight) -тут указателем является тип инт.правильно?
2)if(inLeft == inRight) -почему без знака указателя-*?что произошло если бы было так:if(*inLeft == *inRight)?
3)почему звездочка стоит рядом с инт(int sum(int* inLeft, int* inRight)),а тут - *inLeft;
4)почему return *inRight + sum(inLeft, --inRight);-*inRight со звездой,а эти без:inLeft, --inRight?
соответсвенно что было бы если бы были со звездочками?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 15:53     Указатели и Ссылки
Посмотрите здесь:

Ссылки vs Указатели - C++
Почему ссылки считаются более хорошим средством, чем указатели? Ведь если человек будет использовать сторонние классы, он может не...

Ссылки и указатели - C++
Добрый день, не могу понять чем помогают при использовании указатели и ссылки? Есть код на c++ #progma once class well { ...

Указатели и ссылки - C++
Используя вместо самой переменной указатель на нее написать программу в соответствии с заданием: Вычислить y = cos|x3-x2|.

Указатели и ссылки? - C++
Ниже приведёна программы которая вызывает функцию. В функции происходит следующее создаются 2 массива в которые записыватся чётные и...

Указатели и ссылки [С++] - C++
Всем привет. я тут программу делаю. Цель: определить,принадлежит ли точка заданному промежутку(а точнее лежит внутри или снаружи фигуры)....

Указатели и ссылки c++ - C++
Здравствуйте! Не могли бы вы объяснить как можно использовать ссылки и указатели c++ на практике? Я не пойму для чего они нужны!

Ссылки и указатели - C++
Добрый день. Возможно было. В чем существенная разница между передачей данных в функцию по ссылке или указателю. В каких случаях вы бы...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Duha666
51 / 51 / 5
Регистрация: 10.03.2012
Сообщений: 138
13.03.2012, 16:16     Указатели и Ссылки #2
1) Тут указателем на тип int являются inLeft, inRight
2) Первый вариант - сравнение указателей(сравнение указателей на равные по значению переменные даст false), второй - по значению на указателях
C++
1
2
3
4
5
6
a = 4;
b = 4;
x = &a;
y = &b;
x != y; // указатели на разные переменные
*x == *y // равные значения на указателях
3) Да пофиг где, можете даже так:
C++
1
int * inLeft
4) Потому что мы передаем значение когда пишем *inRight, а когда inRight - все-ещё адрес

Наверное, так проще будет понять:
У вас есть номера двух страниц книги(inLeft, inRight). Вы можете узнать, что находится на странице книги(*inLeft или *inRight). Вы можете сравнить номера страниц: inLeft == inRight(к вопросу №2). А можете сравнить то, что находится на этих страницах: *inLeft == *inRight. Вы можете даже уменьшить известный номер страницы: (--inRight в коде)
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
13.03.2012, 16:29  [ТС]     Указатели и Ссылки #3
получается если я хочу изменить переменную,то надо ставить *?Допустим int*inRight=1;
А если напишу int inRight=1 то єто ошибка,т.к inRight єто адрес?
спасибо.какбэ понял указатели
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:32     Указатели и Ссылки #4
Изменить переменную через указатель на нее:
int x = 1;
int a = &x;
*a = 1; // верно
a = 2; // в данном случае не верно, изменяется значение указателя а не переменной x
x = 3; // верно
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.03.2012, 16:33     Указатели и Ссылки #5
Если Вы передается по ссылке, то копии переменной не создается.
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
13.03.2012, 16:36  [ТС]     Указатели и Ссылки #6
Изменить переменную через указатель на нее:
int x = 1;
int a = &x;
*a = 1; // верно
a = 2; // в данном случае не верно, изменяется значение указателя а не переменной x
x = 3; // верно

на сколько я понимаю,тут используются уже и Ссылка?
C++
1
2
int x = 1;
int a = &x;
а ссылка на х?
а нет ..int a = &x; это взятие адресса х.точно
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:44     Указатели и Ссылки #7
Поправка в моем коде: не int a = &x;, а int *a = &x;
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.03.2012, 16:50     Указатели и Ссылки #8
Цитата Сообщение от lazybiz Посмотреть сообщение
int a = &x;
*a = 1; // верно
Какое это верно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2012, 16:54     Указатели и Ссылки
Еще ссылки по теме:

Указатели и ссылки - C++
Допустим, что есть функция, в которую мы кидаем массив по указателю и кол-ву элементов. void printArray(int *arr, int elements) ...

Ссылки и указатели - C++
Всем привет. Совсем запутался с ссылками и указателями. Помогите решать задачку: Функция принимает два аргумента, число с плавающей...

Указатели и ссылки - C++
Экспериментируя с указателями пришел к вот таким выводам: int a; //переменная int *b; //указатель int &c = a //ссылка на <a> ...

Указатели и ссылки - C++
Собственно, не могу до конца осознать как это работает, вот пример из вики(комменты входят в пример) int n = 6; // Объявление...

Ссылки, указатели - C++
Доброго времени. Как, используя ссылки, указатели и, возможно, другие приемы сделать что-то вроде этого?: int a = 1; int b = 2; ...


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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:54     Указатели и Ссылки #9
Цитата Сообщение от go Посмотреть сообщение
Какое это верно?
Цитата Сообщение от lazybiz Посмотреть сообщение
Поправка в моем коде: не int a = &x;, а int *a = &x;
Так понятней?
Yandex
Объявления
13.03.2012, 16:54     Указатели и Ссылки
Ответ Создать тему
Опции темы

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