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

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

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

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

13.03.2012, 15:53. Просмотров 605. Ответов 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?
соответсвенно что было бы если бы были со звездочками?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 15:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Указатели и Ссылки (C++):

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

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

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

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

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

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

8
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 в коде)
1
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
13.03.2012, 16:29  [ТС] #3
получается если я хочу изменить переменную,то надо ставить *?Допустим int*inRight=1;
А если напишу int inRight=1 то єто ошибка,т.к inRight єто адрес?
спасибо.какбэ понял указатели
0
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:32 #4
Изменить переменную через указатель на нее:
int x = 1;
int a = &x;
*a = 1; // верно
a = 2; // в данном случае не верно, изменяется значение указателя а не переменной x
x = 3; // верно
1
go
Эксперт С++
3587 / 1367 / 130
Регистрация: 16.04.2009
Сообщений: 4,527
13.03.2012, 16:33 #5
Если Вы передается по ссылке, то копии переменной не создается.
1
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; это взятие адресса х.точно
1
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:44 #7
Поправка в моем коде: не int a = &x;, а int *a = &x;
1
go
Эксперт С++
3587 / 1367 / 130
Регистрация: 16.04.2009
Сообщений: 4,527
13.03.2012, 16:50 #8
Цитата Сообщение от lazybiz Посмотреть сообщение
int a = &x;
*a = 1; // верно
Какое это верно?
2
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:54 #9
Цитата Сообщение от go Посмотреть сообщение
Какое это верно?
Цитата Сообщение от lazybiz Посмотреть сообщение
Поправка в моем коде: не int a = &x;, а int *a = &x;
Так понятней?
0
13.03.2012, 16:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2012, 16:54
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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