|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.12.2010, 00:35 | #1 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Логика работы с указателями.
Приветствую , товарищи)) Доброго времени суток )
Прошу разрешить мои сомнения разумными доводами по поводу - общего смысла в двух кусках кода с указателями - 1) - Код:
2) Код:
Код:
Заранее благодарю за ответы)) |
10.12.2010, 02:07 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Потому что в C/C++ массив в плане семантики тождественен указателю на свой первый элемент. Массив элементов типа T (например, char - а такой массив является строкой) тождественен указателю на первый элемент этого массива - типу T* (например, char*).
Поэтому строка имеет тип char*, массив целых чисел - тип int* и т.д. и т.п.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
13.12.2010, 12:24 | #3 | ||
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
но - получение указателя на переменную (область памяти ,переменной занимаемую ) происходит так - Код:
Цитата:
да - подразумевается указатель на первый элемент (если это строка) - но определению " получения адреса" (char *p = &s ) выражение - Код:
|
||
13.12.2010, 12:51 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
потому что строка "чето там" уже имеет тип char*, а ты пытаешься получить char**.
но, этому двойному указателю не куда указывать, ибо у тебя нет переменной типа char* там. это получается по сути так, но при простом взятии адреса переменной c, нету ведь, и в итоге адрес чего хочешь взять?) Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.12.2010, 12:53 | #5 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2vedro-compota
хотя нет, я ошибся. строковый литерал это статический массив, а значит от него можно брать адрес. 2Пепел Феникса ты тоже ошибся Цитата:
Код:
Код:
Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 13.12.2010 в 13:07. |
|
13.12.2010, 13:06 | #6 |
Пользователь
Регистрация: 12.12.2010
Сообщений: 30
|
Код:
Код:
|
13.12.2010, 13:33 | #8 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2vedro-compota
да. это абсолютно аналогично Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
13.12.2010, 17:37 | #9 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Поправочка, строка "123" имеет тип char[4]
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
13.12.2010, 17:53 | #10 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Blade
виновен по всем статьям
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
“Иследование работы с указателями ” | saammy | Общие вопросы C/C++ | 2 | 24.10.2015 17:49 |
Логика | evklid | Помощь студентам | 2 | 28.10.2010 12:51 |
Каков принцип работы с указателями??? | Tanusha_221 | Помощь студентам | 0 | 28.05.2010 16:12 |
Логика работы приложения WINDOWS? образами...:) | robototechnik | Общие вопросы C/C++ | 3 | 18.03.2010 13:58 |
работы с указателями и массивами... | Катюшенька | Помощь студентам | 21 | 24.01.2009 12:17 |