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

Указатели. Не понимаю - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ вычисление наращенной суммы ренты с использованием операторов множественного выбора http://www.cyberforum.ru/cpp-beginners/thread737808.html
помогите,пожалуйста,ответить на вопрос в билете на экзамен,буду очень благодарна: программа,реализующая вычисление наращенной суммы ренты с использованием операторов множественного выбора(с помощью С++).
C++ как можно переделать программу? как можно переделать эту программу так, чтобы использовались функции класса string?) #include <iostream> using std::cout; using std::endl; int main() { http://www.cyberforum.ru/cpp-beginners/thread737785.html
C++ Вычислить и напечатать таблицу значений V для десяти различных значений радиусов R1, R2, ..., R10 трубы
Условие: Объемные расходы воды в секунду определяются по формуле: http://www.cyberforum.ru/attachments/cpp-beginners/215250d1355866277-1.jpg где R - радиус цилиндрической трубы, м; ню - динамическая вязкость жидкости, Па * с;l - длина части трубы, где можно считать, что дельта P - const, м;дельта P - падение давления жидкости в части трубы длиной l м, Па.Вычислить и напечатать таблицу...
Обработка элементов файла.Каждый отрицательный элемент в файле заменить результатом его целочисленного деления на 3 C++
Ввести файл F. Каждый отрицательный элемент в файле заменить результатом его целочисленного деления на 3. Файл вывести до и после преобразования. Я так поняла название файла пользователь должен задать сам. Помогите решить пожалуйста
C++ Помогите сделать блок-схему к лабораторной работе http://www.cyberforum.ru/cpp-beginners/thread737761.html
Помогите сделать блок-схему к этой лабе. Код прилагается :) Спасибо! В одномерном массиве {3.24, -7.16, 2.28, -0.16, -3.22, 7.14, 2.88, -3.20, 0.99, -4.15} вычислить: 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и минимальным элементами; 3) упорядочить элементы массива по возрастанию
C++ не мгу понять что заошибка #include <iostream> #include <clocale> #include <conio.h> #include <stdlib.h> #include <time.h> #include <fstream> #define IA 16807 #define IM 2147483647 #define AM (1.0/IM) #define IQ 127773 подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.12.2012, 09:55     Указатели. Не понимаю
extremist38, указатель есть данное, хранящее адрес подпрограммы, или другого данного. Кратный указатель есть данное, хранящее адрес другого указателя. Указатель, хранящий адрес указателя, хранящего адрес не указателя, называется двойным указателем, указатель, хранящий адрес указателя, хранящего адрес указателя, хранящего адрес указателя, называется тройным указателем и так далее. Сколько указателей нужно использовать, чтоб добраться до не указателя, такова и кратность указателя. Адрес есть значение самого указателя. Адрес есть номер байта в памяти, с которого начинается то, чей это адрес. Например, адрес переменной есть номер байта в памяти, с которого начинается эта переменная. Ссылка есть синоним другой переменной. Можно считать, что ссылка ведёт себя, как неявно разыменуемый при каждом обращении к нему указатель. Но стандарт не гарантирует реализацию ссылок через указатели, вместо этого ссылка может быть реализована дублированием адреса в таблице переменных компилятора, а в готовом коде будет прямая адресация, то есть доступ по адресу в коде программы, а не в данном. Исключение - передаваемые по ссылкам параметры неинлайновых функций и передаваемые по ссылкам операнды неинлайновых перегруженных операторов, в этом случае альтернативные реализации не возможны и ссылка становится синтаксической надстройкой над указателем. Разыменование указателя есть операция доступа не к самому указателю, а к тому, чей адрес он хранит, на низком уровне разыменованию соответствует операция косвенной адресации.

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
нет в С массивов как например в Фортране
C
1
char s[16];
- массив.

Добавлено через 1 минуту
Цитата Сообщение от extremist38 Посмотреть сообщение
& - взятие адреса.
Нет. У тебя этот оператор стоит в декларации, а в этом случае & означает, что следующий идентификатор есть имя ссылки.

Добавлено через 3 минуты
Цитата Сообщение от extremist38 Посмотреть сообщение
Но ведь элементы массива в оперативной памяти разбросаны по участкам и не обязательно идут друг за дружкой
Они не разбрасываются, классический массив - это единый блок, не путай его с массивами-объектами, которые могут быть реализованы на чём угодно, включая списки. Но тогда каждый элемент будет хранить адрес следующего, а оператор ++ для указателя перегружается на копирование адреса следующего элемента из текущего.

Добавлено через 4 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
нет в С массивов как например в Фортране
есть указатель на область памяти где лежит массив
Массивы в c/c++ есть, просто они реализованы на указателях. Но
C++
1
2
3
4
5
6
7
int a[1000];
int *p=a;
std::cout<<sizeof(a); // выведет размер тысячи интов, а не указателя
std::cout<<std::endl;
std::cout<<sizeof(p);// выведет размер самого указателя
std::cout<<std::endl;
std::cout<<sizeof(a[0]);// выведет размер нулевого элемента
, в то же время
C++
1
2
int a[1000];
int *p=a; // здесь a - указатель и присвоено будет значение указателя указателю же
.
 
Текущее время: 03:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru