0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 25
|
||||||
1 | ||||||
Как использовать указатели при работе с массивами?28.11.2011, 16:03. Показов 9195. Ответов 111
Метки нет (Все метки)
подскажите пожалуйста как правильно использовать указатели при работе с массивами. Как написать этк программу используя указатели?
0
|
28.11.2011, 16:03 | |
Ответы с готовыми решениями:
111
Указатели при работе с одномерными и двумерными массивами Ошибка при работе с массивами Ошибка при работе с массивами char Использование показателей при работе с массивами |
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 25
|
|
28.11.2011, 16:56 [ТС] | 21 |
однако у меня в окне ошибок тупо все неумещалось и надо было только ползунок поднять в окно просто не усещались все сообщения и я видел только prforumlb1.exe - 1 error(s), 1 warning(s) нажимал на них а они не показывали строку
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
28.11.2011, 16:59 | 22 |
Ты ещё и не в том окне смотришь...
0
|
1 / 1 / 1
Регистрация: 17.10.2010
Сообщений: 29
|
|||||||||||
29.11.2011, 13:40 | 23 | ||||||||||
Да, я что-то перепутал. На самом деле delete удаляет только память под сам указатель, а delete[] удаляет еще и то, на что ссылкается указатель. Пардоньте за ломаные объяснения.
2Bers: Спасибо, что указали на ошибку, но было бы быстрее и проще сразу просто объяснить механизм работы оператора.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
29.11.2011, 13:55 | 24 |
Так делается только при использовании X[i]. Вычислять же таким образом явный указатель смысла нет. Уж если хочешь юзить явно смещаемый указатель с массивом, то в цикле, инкрементя на каждом шагу сам указатель. А если не в цикле инкрементами/декремнетами, а сложение с индексом, то прячь адресную арифметику под оператор [].
1
|
Заблокирован
|
|
29.11.2011, 14:57 | 27 |
видимо имелось ввиду: фактический адрес памяти, которая хранит адрес памяти с данными. т.е. не так *( array + i ), а так ++array. Наверное чтобы это делать надо "набить руку" на указателях, чтобы осознавать что это и как работает. Чтобы легче было понять что такое указатели и зачем они нужны надо проштудировать способы\методы адресации данных в эвм. Среди них есть косвенная адресация, которая реализована в языке Си посредством указателей, так же есть индексная - тоже имеющая к ним непосредственное отношение. Ссылка ее недостаточно для изучения.
0
|
1 / 1 / 1
Регистрация: 17.10.2010
Сообщений: 29
|
|
30.11.2011, 00:08 | 30 |
Bers, Возможно. В любом случае спасибо за то, что указали на ошибку.
0
|
Заблокирован
|
||||||
30.11.2011, 00:17 | 31 | |||||
Как правило, они являются "временными" объектами.
1
|
Заблокирован
|
|
30.11.2011, 01:33 | 36 |
Подайте свое предложение в комитет по стандартизации. Если тот примет ваше предложение, то будем пользоваться вашими терминами. А пока в стандарте есть термины о явных и неявных преобразованиях типов выражений. Например, массив неявно преобразуется в указатель на его первый элемент при передачи массива в качестве аргумента функции, если параметр объявлен как массив. Но тем не менее указатель от этого не становится неявным. То есть я хочу сказать, что ваша терминология вашего определение указателя может лишь запутывать других.
Дело в том, что, например, в стандарте встречается выражение "явный указатель" (explicit pointer), но несколько в ином смысле, чем вы это себе представляете.
0
|
Заблокирован
|
||||||
30.11.2011, 01:50 | 39 | |||||
Вот например:
Я конечно понимаю, что тарасовская терминология, которую я нахожу не столько терминологией, сколько "называнием вещей своими именами" может быть упоротая))) Но вопрос остаётся в силе: почему ж тогда семантика работы с "массивом" на с++ и семантика работы с "указателем" на с++ - абсолютно идентичная? Чем тогда вообще массив принципиально отличается от указателя на первый элемент блока данных?
0
|
Заблокирован
|
|
30.11.2011, 01:55 | 40 |
Bers, массив, это вообще аппаратный термин, просто он перекочевал в высокоуровневое программирование (наверное для облегчения понимания, неважно), а фактически да, вы правы. А по указателям, так нету никаких явных или неявных, есть просто указатели, как реализация метода адресации.
Добавлено через 3 минуты это был вопрос "с подвохом"
0
|
30.11.2011, 01:55 | |
30.11.2011, 01:55 | |
Помогаю со студенческими работами здесь
40
Использование показателей при работе с массивами Проблемма при работе с массивами структур Указатели при работе со строками char* Ошибка в перегрузке оператора - при работе с массивами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |