![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
Добрый день! Объясните пожалуйста принципиальное отличие строки 1 и строки 2
Ещё очень хотелось бы узнать, в каких практических случаях применяются указатели, и ссылки. Спасибо! -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
||||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
||||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
![]() |
|||
|
||||
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
vinter, спасибо огромное! С написанием разобрался окончательно.
Вопрос про практическое применение указателей, до сих пор открыт... Так же интересуют ссылки. P.S. Читаю 8ой раз "Руководства идиота по С++", никак не могу въехать в практику их применения... -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
||||
|
||||
taiven |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 2 Всего: 9 |
ну и ещё
Это сообщение отредактировал(а) taiven - 28.1.2009, 12:36 |
||||||
|
|||||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
||||
|
||||
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
Объясните мне кто-нибудь человеческим языком, код написанный выше? Что, куда и зачем... Я уже примерно 7ой раз пытаюсь начать учить С++, и всё упирается именно в эти указатели и ссылки! Даже ассмблер мне так туго не давался, как С++!!! Уже в этом году будет уже наверное 6ой год, как я хочу начать его учить, и ...
-------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
может не твое?
Добавлено через 45 секунд зачем нам пересказывать то, что написано во всех учебниках, возьми нормальный учебник и почитай |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
если ты знаеш асм, то вообще непонятно как у тя может возникнуть вопрос об указателях %)
|
|||
|
||||
ZeroPoint |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 20.1.2009 Репутация: нет Всего: нет |
Вначале был Указатель.
![]() Тут немного кода с комментариями, для начала хватит.
|
|||
|
||||
russians |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
WolfAlone,
Всё ![]() Это сообщение отредактировал(а) russians - 28.1.2009, 14:22 |
|||
|
||||
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
Я знаю: javaScript, CSS1/2, HTML4, SQL, Pascal, Basic, PHP, ASM немного, и чё-то там ещё! Может быть конечно не на уровне супер-профессионала, но на достаточно высоком уровне.
Такое понятие как указатели - в Pascal'e я использовал только для выделения буферов при работе с файлами, в других случаях обходился обычными переменными. Про ссылки, я ничего ни в PHP, ни в Pascal'e не слышал. Что такое структуры я знаю хорошо, т.к. писал чью-то курсовую, в которой нужно было на паскале соорудить примитивный движек для БД, за основу которого я взял именно структуры. Lazin, после вышесказанного, я всё же смею надеяться, что изучение C++, мне всё таки начнёт удаваться. Главное, что бы кто-нибудь обычным человеческим языком мне растолковал, какое практическое применение у указателей и ссылок! Для чего их применяют и как? Так как из "сухих" книжных понятий мне нихрена не ясно. Спасибо! -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
russians |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
А ты не торопись, возьми Стивена Прата С. С++ тебе пока рано, надо понять сначала его кровного старого собрата, из которого потом С++ родился. Почитай его спокойненько - поймёшь ![]() А дальше - усложняй себе задачу по мере прихода понимания ![]() Указатель хорош тем, что вместо того, чтобы передавать в функции значения и создавать дополнительные, нафиг никому не нужные локальные переменные, которые жрут место в памяти, мы можем передать в неё указатель, а указатель это всего лишь переменная, которая хранит адрес в памяти (по сути int - по длине), и которую ты можешь разыменовать, т.е. достать значение по адресу с помощью оператора *. Есть у нас массив int x = {1, 2, 3, 4}; И есть у нас переменная int * i = x (в С имя массива - это ссылка на первый элемент массива). Так гораздо легче для памяти, когда мы передаём этот мааааленький указатель и обращаемся к нему: *(i + h), где h - это смещение типа int относительно начального указателя, разыменовывая по очереди элементы относительно первого, на который указывает указатель, чем когда мы передаём весь массив. И когда мы подставляем имя массива в функцию, тем самым мы передаём указатель на первый элемент её. Ещё тебе указатели понадобятся, когда ты узнаешь, что такое malloc, calloc, realloc, free и new/delete (динамическое размещение элементов данных в памяти прямо на ходу выполнения приложения, а не в момент компиляции). И когда ты будешь изучать сложные структуры данных (списки, деревья, стеки, очереди, графы), то тебе указатели пригодятся для связок предыдущих и следующих элементов. Вот, вроде бы объяснил. Поправляйте, если что ![]() P.S. А нахрена тебе С++, если тебе нужны указатели? Указатель - это низкоуровневая работа с памятью, это С. Это сообщение отредактировал(а) russians - 28.1.2009, 14:38 |
|||
|
||||
Kurganec |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 6.6.2008 Где: СПБ Репутация: нет Всего: нет |
улыбнуло ![]() |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
на крайне низком уровне ты их знаешь, и само программирование тоже подозреваю что такие структуры как списки и деревья, которые обычно реализуются через указатели, тебе неизвестны |
|||
|
||||
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
russians, спасибо мил человек, век не забуду! Теперь я вроде как понял, шо такое указатели и для чего они нужны. Думаю, практика быстро исправит сложившееся недоразумение
![]() ![]() Остался ещё небольшой вопрос. Вот мы выделили 4 (или не 4 ![]()
сделали на него указатель... Судя по написанному в руководстве, функция new int - должна была вернуть мне адрес выделенной памяти, а она мне почему-то возвращает TRUE, видимо по тому, что память удалось выделить, при это ещё выдает такое предупреждение. warning C4800: 'int *' : forcing value to bool 'true' or 'false' (performance warning). Что я не так сделал? -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
![]() |
|||
|
||||
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
GoldFinch, вы совершенно правы! Когда я сдавал зачеты по информатике в школе, ещё на агатах - ни я, ни преподаватели информатики, ни видимо сами АГАТы не слышали про такие структуры как деревья и списки - ничего не слышали! Бывает же такое...
![]() А вообще, я не утверждаю, что я знаю всё на 5+, но всё выше мною указанное на твёрдое 4 - сдал. В PHP и CSS как ни странно я покачто тоже ничего не слышал про указатели, хотя возможно в них покачто небыло необходимости! Да, и в HTML мне тоже не удалось обнаружить указателей. ![]() -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
WolfAlone, CSS и HTML - не языки программирования
в PHP есть оператор разыменовывания $, через него там указатели и реализуются подозреваю что ваши преподаватели информатики и не такое знали, только вам это не говорили ибо бесполезно в самом деле, почитайте чтонить из теории, например чтонить типа "алгоритмы и структуры данных" Вирта |
|||
|
||||
Goliaf777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
У нас преподователи информатики в школе 3 года учат как включать компьютер и запускать ворд а остальные годы как выключать компьютер и закрывать ворд. Так что я подумал лучше буду изучать сам чем эти паскали и бейсики, которые сами преподающие незнают. А вот как посоветовл уважаемый russians тебе стоит почитать С.Прата Язык программирования С++. Лекции и упражнения. Главное понять зачем это нужно, как было сказано выше это позволяет экономить пямять что важно, но не менее важно гибко управлять ею.
|
|||
|
||||
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
При всём желании, облазив весь PHP.ru - так и не нашёл, ничего похожего на указатель. Точнее будет сказать, слово указатель там конечно присутствует, но в отличии от С++ - в PHP это абстрактное понятие, и в классическом смысле этого слова их там всё же нет. Но давайте всё-таки вернёмся к теме, ведь разговор не о том, есть ли указатели в php или нет. С указателями я наконец-то разобрался, со ссылками кажется тоже въехал что, куда и зачем. Получилось, как обычно "а ларчик просто открывался"... Всем спасибо, думаю тему можно закрывать!
А Вам, уважаемы, Goliaf777, хочу высказать искреннюю благодарность! По крайней мере хотя бы за человеческое отношение. Так же выражаю огромную благодарность всем остальным, пытающимся помочь мне с моими глупыми на их взгляд вопросами. P.S. Люди, будьте друг к другу более снисходительны! Ведь все мы когда-нибудь встретимся в другом мире... По сути дела все мы родились от одной матери, и у нас и без того врагов хватает! Так не будем восставать против братьев своих по разуму и всему остальному! ![]() -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
pan2004 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 2 Всего: 9 |
WolfAlone, указатели обычно используют в следующих случаях:
1. Когда необходимо установить физические связи между отдельными объектами. Например, создать такие структуры как списки, разнообразные деревья и графы без использования указателей довольно сложно. 2. Для доступа к памяти в области "кучи"(heap) можно только через указатели. 3. Для создания массива заранее неизвестного размера: char* myStr = new char[len]; 4. Для изменяемых аргументов функций - хотя чаще используют здесь ссылки, тк проще. 5. Надеюсь ничего особого не забыл... |
|||
|
||||
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
pan2004, спасибо огромное! Теперь я знаю не только как их использовать, но и зачем! Думаю, что тему можно закрывать!
-------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
pan2004 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 2 Всего: 9 |
6. Да и в Сиплюс плюс - для реализации динамического полиморфизма(заумно, но это когда указателю на базовый класс присваивается объект производного класса. Если теперь через этот указатель вызвать виртуальный метод, то он будет вызван у производного класса. Так, одна функция может, принимая указатель на Base, вызывать методы любого из Derived классов, в зависимости от конкретного типа передаваемого в эту функцию объекта.)
|
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
указатели нужны чтобы хранить адрес куска памяти
вот собственно и все их назначение и применение |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
Goliaf777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
mes Потому-что над указателями дйствует (что весьма важно) другая арифметика,
Добавлено через 1 минуту и 53 секунды И совсем другие возможности, что в принципе и делает его следующим типом. Это сообщение отредактировал(а) Goliaf777 - 28.1.2009, 19:24 |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
mes, я както привык мыслить категориями асма, для меня что "указатель", что int - все dword
Это сообщение отредактировал(а) GoldFinch - 28.1.2009, 19:32 |
|||
|
||||
mes |
|
||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
К _созданию_ указатель отношения не имеет.
ага, заметно чуть ли в каждой фразе. ![]() Добавлено @ 21:09
ага, и эта особенность позволяет им выполнять роль итераторов для обычных (статических и динамических) массивов. Это сообщение отредактировал(а) mes - 28.1.2009, 21:21 |
||||||
|
|||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А посмотрю, что ты скажешь, поработав на 64-х битной машине ![]() |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
64-х разрядный код все еще неактуален
лет через 5-10 все мирно перейдут на 64-х разрядный код, и то что вы будете называть int'ом я буду называть qword'ом Добавлено через 6 минут и 8 секунд кстати, мне что-то кажется что "64-х битная машина" - это неуместное применение термина "бит" |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
да что вы говорите, как раз таки уже актуален. |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
||||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
таки на 99% софт 32-разрядный
Добавлено через 55 секунд и XP на 99.9% у всех стоит 32-разрядная |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
нормальный софт не проблема собрать как под x86 так и под IA-64 ![]() у меня 64х ![]() |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
Lazin, а у кого-то фряха.
ну и что? всеравно количество систем с х64 виндой покачто пренебрежимо мало |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
смотря где, большинство новых компьютеров продаются с 64х битной виндой если-бы ты писал софт который должен крутиться на серверах а не на десктопах, то тебе пришлось бы лет эдак 6 назад столкнуться с 64х битным кодом ![]() |
|||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Начнем с того, что не надо ничего называть ни вордом, ни двордом, ни квордом. Так как это источник будущих проблем. Например, мне не известно ни одной 64-х разрядной архитектуры, под которой int имеет размер такой же, как QWORD. Под x86_64 он имеет размер 32 разряда, а вот long, size_t и void* - 64. В то же время, под Win64 у long только 32 разряда. Именно из-за таких вещей возникает большинство проблем при портировании 32-х разрядного кода на x86_64, так как некоторые несознательные программисты продолжают тупо делать
|
||||
|
|||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
bsa, просто сейчас начало переходного периода
когда было время 16-разрядных систем, int был 16-разрядным, а long 32-разрядным сейчас int 32-разрядный, а long 64-разрядный все повторяется. но учитывая сколько времени занял переход с 16-разрядных систем на 32-разрядные, я думаю что полный переход произойдет оочень не скоро |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
с такими программистами да, не скоро ![]() какая разница насколько это распространено, ты для себя пишешь или для заказчика? если для себя то все понятно, но заказчик может захотеть иметь оба билда ![]() |
|||
|
||||
WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
А для .net имеется разница в 32х или 64х разрядный билд?
-------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
нет
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Переход уже произошел - уже все наиболее популярные ОС имеют 64-х разрядные варианты. Просто, в отличие от 16->32, этот переход не потребовал радикального изменения операционных систем, поэтому ты ничего и не заметил. Кстати, простая перекомпиляция программы под 64-х разрядную ОС выявляет много ошибок, которые в 32-х битном режиме из-за ряда "совпадений" ошибками не являлись. |
|||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 0 Всего: 13 |
Ты либо врёшь, либо ужасно заблуждаешься. Я думаю, твои познания перечисленных ЯП не выше 1 по пятибальной системе. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
Goliaf777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
Половина таких книг, что-то из жанра для чайнегов или идиотов толком незнакомят с языком. Чиатал как-то было в самом начале пути книгу, С++ для чайнеков, нечего не понял, хотел уже поконцить с этой затеей. Сейчас с улыбкой вспоминаю как там на 5 страницах (наивно надеясь что-то обьяснить) обьясняли классы,конструкторы, деструкторы. Поэтому по моему все эти за 21 день, за 24 часа, для чайнеков бурда))) |
|||
|
||||
Riddik |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Прошу пояснить, верно ли утверждение:
Двумерный массив и указатель на массив - одно и тоже.
Добавлено через 7 минут и 39 секунд И
Отличается от
только тем, что во втором случае размер матрицы, которая растёт из такой структуры данных, как указатель на указатель сразу задаётся число столбцов (или размер строки, что одно и то же)? Аналогично объявление двумерного массива (или указателя на массив)
позволяет варьировать число строк, а не определяет это число заране(int a[5][10];), так? Или всё это бред и я ничего не понял? |
||||||||
|
|||||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Имхо, Вы не поняли главного, разницу между массивом и указателем. |
|||
|
||||
Riddik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Разница такова:
указатель можно перенаправить, укзатель может указывать в никуда, в то время как массив всегда "намертво" указывает на первый элемент, т.е. имя массива - это ещё и адрес его нулевого элемента. Поправьте меня, пожалуйста. В чём ещё отличие указателя от массива? И мой предыдущий пост, где там ошибки? Это сообщение отредактировал(а) Riddik - 5.2.2009, 23:30 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
двумерный массив это именно двумерный массив. То, что существует преобразование к указателю на одномерный массив (размером с количество столбцов двумерного), это еще не значит, что это одно и тоже. Более того, операция sizeof для массива и указателя возратит в подавляющем большинстве случаев разные значения. Поэкспериментируй. |
|||
|
||||
Riddik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Спасибо))
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |