Форум программистов, компьютерный форум CyberForum.ru

работа с указателями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ поиск маршрута. Задача на С#. http://www.cyberforum.ru/cpp-beginners/thread33222.html
Задача следующая: Некая географическая карта местности задана квадратной сеткой определенного масштаба. В узлах сетки известна высота над уровнем моря. Между соседними узлами высота меняется плавно. Имеется караван, перемещающийся только по линиям сетки, перемещение по диагоналям запрещается. Путь между двумя соседними точками с углом наклона больше 45 градусов считается непроходимым....
C++ Програма с .тхт файлом вот код #include <windows.h> #include <stdio.h> #include <conio.h> FILE *f; typedef struct tagINFO { http://www.cyberforum.ru/cpp-beginners/thread33219.html
C++ Обработка русского текста в консольном режиме.
Приветствую всех, Собственно вопрос: Создаю строковую переменную, посредством cin заношу в неё текст на русском, распечатываю cout'ом и получаю хлам. Типа ввоже йцукен, получаю ©жгЄҐ* В принципе, я могу перед выводом на экран у каждого символа "сдвинуть" кодировку, но может есть более простой способ? Заранее благодарен.
Курсач на С++(должен был сдать месяц назад!!(((() C++
1.Известно, что в Москве самыми теплыми являются дни с 15 июля по 15 августа. Для проведения фестиваля были выбраны 7 следующих подряд дней, наиболее теплых по данным за последние 10 лет. Составить программу для выполнения этой работы на ЭВМ. (Все данные датчиком случайных чисел.) 2.Японская радиокомпания провела опрос 250 радиослушателей по трем вопросам: 1). Какое животное Вы связываете с...
C++ Автокорреляция http://www.cyberforum.ru/cpp-beginners/thread33208.html
Ув. форумчани напишите пожалуйста код на С++ Builder функцию автокорреляции или как по др. преобразование Фурье 2D.
C++ текстовый файл поскажите пожалуйста почему не работает. хочу написать первые символы строк если они удовлетворяют условию в конец того же файла из которого они считываются. if ((newfile = fopen(name, "a+")) != NULL) while (fgets (buffer,30,newfile)!=0){ if (buffer>47&&buffer<57) {fprintf(newfile,"%c ",buffer);} } Добавлено через 14 минут 0 секунд или как вообще считать строку, как-то... подробнее

Показать сообщение отдельно
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
08.05.2009, 12:40     работа с указателями
Массивы и указатели в С++ тесно связаны и могут быть использованы почти эквивалентно. Имя массива можно понимать как константный указатель. Указатели можно использовать для выполнения любой операции, включая индексирование масива.
Предположим, что объявлены массивы целых чисел b[5] и целая переменная указатель bPtr. Поскольку имя массива(без индекса) является указателем на первый элемент массива, мы можем задать указателю bPtr адреспервого элемента массива b с помошью оператора
bPtr = b;
Это эквивалентно присваиванию адреса первого элемента массива следующим образом
bPtr = &b[0]
Сослаться на элемент массива b[3] можно с помощью выражения указателя
*(bPtr + 3)
В приведенном выражении 3 является смещением указателя. Когда указатель указыает на начало массива, смещение показывает, на какой элемент массива должна быть ссылка, так что значение ссмещения эквивалентно индексу массива. Предыдущую запись называют записью указатель-смещение. Скобки необходимы, потому что приоритет * выше, чем приоритет +. Без скобок верхнее выражение прибавило бы 3 к значению выражения *bPtr (т.е. 3 было бы прибавленно к b[0] в предположении, что bPtr указывает на начало массива). Поскольку элемент массива может быть указан указателем выражением, адрес
&b[3]
может быть записан также выражением указтелем
bPtr + 3
Сам массив можно рассматривать как указатель и использовать в арифметике указателей. Например, выражение
*(b + 3)
тоже ссылается на элемент массива b[3]. Вообще все выражения с индексами массива могли бы быть записаны с помощью указателей и смещений. В этом случае запись указатель-смещение применялась бы к имени массива как к указателю. Заметим, что предыдущий оператор никоим образом не модифицирует имя массива; b продолжает указывать на первый элемент массива.


Источник: Х.Дейтел, П.Дейтел "Как программировать на С++"
Rififi, и где мы переврали?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru