10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
||||||
1 | ||||||
Опят про указатели)04.03.2010, 13:58. Просмотров 751. Ответов 11
Метки нет Все метки)
(
По идее если * то мы работаем со значением => увеличиваем значение на 1 но эт не так. причем что с * что без * - результат один. Увеличивается адрес указателя на 1. почему?
0
|
|
04.03.2010, 13:58 | |
Про указатели
|
|
324 / 308 / 68
Регистрация: 05.11.2009
Сообщений: 712
|
||||||
04.03.2010, 14:00 | 3 | |||||
это увеличение указателя на 1, а после получение значения у операции ++ приоритет выше, чем у *
0
|
быдлокодер
1719 / 906 / 106
Регистрация: 04.06.2008
Сообщений: 5,618
|
|
04.03.2010, 14:05 | 4 |
Чё гадать-то?
Нужно верить своим глазам. Если у тебя увеличивается указатель, значит *b++ увеличивает именно указатель. Если это трудно сразу понять, необходимо сделать пометку где-нибудь и к ней возвращаться. На крайняк почитать у K&R, глава 5.1 "Указатели и адреса", цитата: "(*ip)++ В последней записи скобки необходимы, поскольку без них инкременировался бы указатель ip, а не то, на что он указывает" Хотя кнгига по С, но думаю в данном случае это неважно.
0
|
![]() 3682 / 959 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||
04.03.2010, 14:42 | 5 | |||||
![]()
1
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
||||||
04.03.2010, 15:04 [ТС] | 6 | |||||
insideone, ты как всегда на высоте)
Следующий вопрос:
0
|
324 / 308 / 68
Регистрация: 05.11.2009
Сообщений: 712
|
|
04.03.2010, 15:07 | 7 |
потому что p3[0] == *(p3)
p3[1] == *(p3 + 1) p3[2] == *(p3 + 2) PS а лучше всего взять книгу, и почитать её...
0
|
![]() 3682 / 959 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|||||||||||
04.03.2010, 15:09 | 8 | ||||||||||
Когда обращаемся к указателю с индексом можно сказать мы обращаемся уже к переменной, т.е. пишем что то вроде этого
![]()
0
|
быдлокодер
1719 / 906 / 106
Регистрация: 04.06.2008
Сообщений: 5,618
|
|
04.03.2010, 15:10 | 9 |
Потому, что операция разыменования применяется к указателям. То есть к сущности, содержащей в себе адрес.
*p3[0] = 0.2 нелепица, ибо разыменование применяется к p3[0] А p3[0] не адрес. Это значение 0,2 Тебе про скобки понятно? Что-то мне не нравится это дело, какая-то недоговрённость. Вместо чего тебе предложено применять конструкцию ++*pA; ?
0
|
![]() 3682 / 959 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||
04.03.2010, 15:13 | 10 | |||||
Вместо
![]()
0
|
быдлокодер
1719 / 906 / 106
Регистрация: 04.06.2008
Сообщений: 5,618
|
|
04.03.2010, 15:25 | 11 |
Ну так я и знал. Нутром чуял что что-то не то.
Значит, вот здесь скобки *(pA)++ Не нужны АБСОЛЮТНО. Ну подумай сам, ты просто имя переменной заключил в скобки, ровным счётом ничего не даёт. Убираем их, получаем *pA++ Эта конструкция и ++*pA Ну никак эквивалентны быть не могут, при всём желании.В первом случае у тебя инкременируется УКАЗАТЕЛЬ, а во втором ЗНАЧЕНИЕ по указателю. (пост ли пре щас не рассматриваю даже)
0
|
![]() 3682 / 959 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|||||||||||
04.03.2010, 15:29 | 12 | ||||||||||
Прошу прощения, конечно же
Кстати можно ещё так
0
|
04.03.2010, 15:29 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Вопрос про указатели Вопрос про указатели Про указатели с использованием функции Вопрос про указатели на массивы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |