Другие языки программирования и технологии
Язык Си. Нужна методичка хорошая, в которой на примерах и глубоко обьясняются основы. Например, сейчас буксую на
указателях. Или может другой источник информации посоветуете? Спасибо!
Указатели сложная тема и многим не понятна, так что нормально все.
Может это поможет
http://kpolyakov.spb.ru/school/c.htm
http://lib.ru/CTOTOR/starterkit.txt_with-big-pictures.html
Может это поможет
http://kpolyakov.spb.ru/school/c.htm
http://lib.ru/CTOTOR/starterkit.txt_with-big-pictures.html
Ровшан Алиев
Спасибо! Книга Богатырева хорошая очень, наверное, порекомендую и знакомому, который собирается учить программирование с нуля.
Если ты чего-то не понимаешь, то напиши, что именно. Если и этого не сделаешь, то обычная лень мозгов. И ничего больше!
Ровшан Алиев
Спасибо!
Например.
Как называется такая операция?
*(px++);//если рх - указатель
Как записать, если мне нужно, чтоб указатель сдвинулся на 5 ячеек, например?
До указателей смело любой код придумывала, запускала, и не боялась последствий.
Теперь побаиваюсь накосячить неверными манипуляциями с указателями.
Например.
Как называется такая операция?
*(px++);//если рх - указатель
Как записать, если мне нужно, чтоб указатель сдвинулся на 5 ячеек, например?
До указателей смело любой код придумывала, запускала, и не боялась последствий.
Теперь побаиваюсь накосячить неверными манипуляциями с указателями.
Да нет там ничего сложного. Указатель - это переменная, которая содержит в себе адрес другой переменной. Для указателей введена операция * получения по указателю адреса и типа переменной, на которую он ссылается. Соответственно типам переменных, на которую ссылатся указатели, введены типы указателей - этот ссылается на int. а тот ссылается на double, например.
Кроме того, для указателей разрешены арифметические операции (адресная арифметика), с помощью которых можно определить адреса переменных, следующих за переменной, адрес которой хранится в указателе. Это позволяет обращаться к переменным в массивах по указателю на первую переменную массива, добавляя количество переменных этого типа, на которое нужно сдвинуться по адресам. То есть добавление к указателю, например, 1 означает, что будет взят не адрес следующего байта, а адрес переменной, следующей за переменной, адрес которой хранится в указателе. Вот и всё :)
Впрочем, известный программист Джоэл Спольски пишет:
"…Я обнаружил, что понимание указателей в С — это не навык, а способность. При поступлении на факультет кибернетики набирается человек 200 вундеркиндов, писавших игрушки для Atari 800 на BASIC в возрасте 4 лет. Затем они весело проводят время, изучая Паскаль, но в один прекрасный день профессор заводит речь об указателях, и внезапно они не могут этого понять… 90% потока переходит на политехнический и становится отличниками, уверяя друзей, что на информатике мало девок. На самом же деле по неизвестной причине часть человечества просто рождается без той части мозга, которая понимает указатели."
Кроме того, для указателей разрешены арифметические операции (адресная арифметика), с помощью которых можно определить адреса переменных, следующих за переменной, адрес которой хранится в указателе. Это позволяет обращаться к переменным в массивах по указателю на первую переменную массива, добавляя количество переменных этого типа, на которое нужно сдвинуться по адресам. То есть добавление к указателю, например, 1 означает, что будет взят не адрес следующего байта, а адрес переменной, следующей за переменной, адрес которой хранится в указателе. Вот и всё :)
Впрочем, известный программист Джоэл Спольски пишет:
"…Я обнаружил, что понимание указателей в С — это не навык, а способность. При поступлении на факультет кибернетики набирается человек 200 вундеркиндов, писавших игрушки для Atari 800 на BASIC в возрасте 4 лет. Затем они весело проводят время, изучая Паскаль, но в один прекрасный день профессор заводит речь об указателях, и внезапно они не могут этого понять… 90% потока переходит на политехнический и становится отличниками, уверяя друзей, что на информатике мало девок. На самом же деле по неизвестной причине часть человечества просто рождается без той части мозга, которая понимает указатели."
Не нужна тебе методичка, нужно потратить время на осмысление таких аспектов как указатели, практика и не чего более, главное понять что указатель это та же самая переменная только имеет две формы представления: значение и адрес в оперативной памяти (хотя и представление переменных позволяет делать то же, пользуясь ссылками), точнее, когда определяешь указатель, Ты даешь имя не переменной, а ячейке памяти в которой может быть какое то значение переменной)))
Похожие вопросы
- Программирование на языке Си. Нужна небольшая помощь.
- удалить все элементы, кроме имеющих заданное произведение цифр. язык си++.нужна срочная помощь
- Язык Си. Читаю K&R (книга автора языка с примерами). Упражнение 1.10
- Почему язык СИ такой сложный?
- Программирование на языке СИ с использованием подпрограммы-функции
- Вопросы по языку СИ
- какую программу лучше использовать для программирования на языке Си?
- Функции в языке СИ
- Кто знает язык Си? ПОМОГИТЕ ПОЖАЛУЙСТА!!!
- Поменять местами первый и последний отрицательные элементы массива B (18). (Язык Си) (Язык Си)