![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
Нужно подтянуть такую сложную тему в программировании как указатели. Сказали есть книжка Pointet on C, но перевода не нашол, а англ не потяну читать. Может быть кто нибудь знает сборники/книги/ресурсы с задачами и просто учебным материалом непосредственно по указателям, не на начальном уровне (как обычно) а чтобы прям мастер класс стать. Потому что как таковых задач не стоит щас на которых можно тренироваться, а выдумывать самому, так ничему не научусь ибо не выдумаю действительно сложные задачи.
Заранее спасибо. |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
K&R. В православном переводе тоже есть.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
эта книга обо всем |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 3 Всего: 32 |
cupper, я как-то хотел, по молодости, написать уроки по C++. Вот держи статью про указатели и ссылки от туда.
Присоединённый файл ( Кол-во скачиваний: 24 )
pointers_and_references_files.zip 19,16 Kb-------------------- ![]() |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
спасибо, в любой книжке по программированию рассказывается про указатели, а я надеялся найти книгу посвященную только указателям
|
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Указатели не составляют большого объема от всего си. И не являются особо сложной проблемой, как кажется на первый взгляд. по этому отдельных книг по этому вопросу не найдешь. Мой совет - попробуй начать с того, что есть, а потом просто задавай вопросы на этом форуме, если что-то не ясно. Проблема не сложная, разберешься. |
|||
|
||||
| hente |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.3.2009 Где: Томск Репутация: нет Всего: нет |
Джефф Элджер - Библиотека программиста!
Если осилишь ВСЕ будешь просто гуру кодер в С++ )) в этой книге найдешьвсе идеомы с указателями используемые в С++ --------------------
долой быдло кодеров!!! |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
судя по описание отличная книга, да и всего 320 страниц, это не так и много, по сравнение хотя бы со Страуструпом. Спасибо, будет следующая после K&R в прочтении. |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
дошел я значит к K&R до указателей, и до двумерных массивов, и опять наступаю на одни и теже грабли и из книги ничего не почерпнул для того чот бы понимать где эти грабли лежат и как они работают
вот пример: не могу понять что неправильно в этом объявлении
надеюсь что хотя бы с вашей помощью я смогу освоить сложную работу с указателями Это сообщение отредактировал(а) cupper - 27.9.2010, 23:09 |
|||
|
||||
| Crafty |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 2 Всего: 14 |
cupper, вы создаете массив из указателей на char и инициализируете их целыми числами. И еще если вы делаете n - мерный массив, то нужно указывать все его размерности, кроме первой явно.
Вот так будет выглядеть указатель на 2-мерный массив 2x3, если вы это имели ввиду:
Это сообщение отредактировал(а) Crafty - 28.9.2010, 00:05 |
||||
|
|||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
-------------------- вопросов больше чем ответов |
|||
|
||||
| cupper |
|
||||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
нет. Я отталкивался от этого определения
массив указателей на char. строка вида "aaa" есть ничто иное как {'a','a','a','\0'}, в свою очередь каждый символ из этого массива есть ни что иное как однобайтовое число которой можно привести к int. Ну вот я и решил а что б собсно не сделать так как сделал я. И тут я видимо все перепутал. Выше приведенный массив я понимаю как двумерный с переменным числом элементов в каждой строке, как раз благодаря указателям. С числами видимо такое не канает. И нет иного способа как явно определять сначало
а потом пробегать каждый элемент и делать
Но это же равносильно тому чтобы сделать
Тобишь я хотел статически определить двумерный массив с переменным числом элементов в каждой строке. Но да я както пропустил тот момент что к первому массиву обращаться можно только так NAME[i] получаем всю строку (адрес первого элемента строки которой храниться в NAME). Ей богу не понимаю где я ошибаюсь :( Основательно запутался я. Это сообщение отредактировал(а) cupper - 28.9.2010, 09:48 |
||||||||||||||
|
|||||||||||||||
| cupper |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
вот пример
вывод: 2 6 вот так работает и так все понятно. А вот если пробовать делать
так массива не инициализаруется как предполагалось (могу предположить что из за того что в mas[] кладется не адрес массивов {1, 2, 3,4} и их элементы) но для
так работает. Может кто нить объяснить в чем разница ? И возможно объявить не динамический двумерный массив с переменным числом элементов в строках не типа char* ??? Заранее благодарю за обширный ответ |
||||||
|
|||||||
| Crafty |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 2 Всего: 14 |
cupper, мне кажется вы не видите разницу между массивом символов и указателем на символьную константу. Почитайте K&R повнимательней.
K&R:
|
||||
|
|||||
| cupper |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
спасибо что уделяете мне время, но нам нужно уточнить не которые вещи, а то толи мы говорим с вами о разном толи я вас очен сильно не понимаю.
Я понимаю разнице между массивом и указателем на массив.
Здесь объявлен массив указателей на строки, что можно понимать как двумерный массив. Запись вида "test" это сокращенная запись {'t', 'e', 's', 't', '\0'} по крайней мере в тоже K&R так написано для случай инициализации одномерного массива
Из чего у меня и сложилось выше написанное заключение что "test" = {'t', 'e', 's', 't', '\0'} Но в случае с указателями "test" != {'t', 'e', 's', 't', '\0'}, потому что
что меня приводит в замешательство. Все что выше написано в теме сводиться к этой проблеме. |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |