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

Бесконечные адреса одной переменной. МоСК кипит... - C++

Восстановить пароль Регистрация
 
Japanese
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 120
13.12.2010, 13:54     Бесконечные адреса одной переменной. МоСК кипит... #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
 
 
int main()
{
    int * pAddressOne;
    int * pAddressTwo;
    int * pAddressThree;
    int * pAddressFour;
    int * pAddressFive;
    int Value = 7;
 
    cout << "Value: \t\t" << Value << endl;         // Выводим на экран значение переменной Value - 7
    cout << "Value: \t\t" << &Value << endl;        // Выводим на экран адрес по которому лежит значение переменной Value 
    
    pAddressOne = &Value;                   // Присваиваем адрес переменной Value указателю №1
    cout << "pAddressOne: \t" << pAddressOne << endl;       
 
    pAddressTwo = pAddressOne;              // Присваиваем значение указателя №1 указателю №2
    cout << "pAddressTwo: \t" << &pAddressTwo << endl;
 
    pAddressThree = pAddressTwo;                // Присваиваем значение указателя №2 указателю №3
    cout << "pAddressThree: \t" << &pAddressThree << endl;
 
    pAddressFour = pAddressThree;               // Присваиваем значение указателя №3 указателю №4
    cout << "pAddressFour: \t" << &pAddressFour << endl;
 
    pAddressFive = pAddressFour;                // Присваиваем значение указателя №4 указателю №5
    cout << "pAddressFive: \t" << &pAddressFive << endl;
 
    cout << "*pAddressFive: \t" << *pAddressFive << endl;   // Выводим на экран значение хранащееся
                                // по адресу который был присвоен указателю №5
    
    getch();
    return 0;
}
Результат выполнения данной программы:

Value: 7
Value: 003DF7D8
pAddressOne: 003DF7D8
pAddressTwo: 003DF808
pAddressThree: 003DF7FC
pAddressFour: 003DF7F0
pAddressFive: 003DF7E4
*pAddressFive: 7

Вопрос:
Выводить адреса в которых все время будет содержаться значение 7 можно бесконечно?
Каждый адрес имеет свой собственный адрес? Если так, то получается что наша переменная (Value) имеет бесконечность второстепенных адресов? Но это какбэ невозможно, памяти нехватило бы никакой
Объясните пожалуйста что тут к чему
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 13:54     Бесконечные адреса одной переменной. МоСК кипит...
Посмотрите здесь:

Класс многочленов от одной переменной C++
C++ Текст и числа в одной переменной
Использование одной переменной C++
C++ Многочлен от одной переменной
C++ Взятие адреса у константной переменной при объявлении
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
13.12.2010, 14:02     Бесконечные адреса одной переменной. МоСК кипит... #2
Еперный театр, вы выводите адреса переменных-указателей. Получаете адрес переменной, в которой хранится адрес. Вот они у вас и разные.
Japanese
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 120
13.12.2010, 14:10  [ТС]     Бесконечные адреса одной переменной. МоСК кипит... #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Еперный театр, вы выводите адреса переменных-указателей. Получаете адрес переменной, в которой хранится адрес. Вот они у вас и разные.
Значит каждый адрес имеет свой собственный адрес?
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
13.12.2010, 14:20     Бесконечные адреса одной переменной. МоСК кипит... #4
Каждая переменная имеет собственный адрес. Даже та, которая хранит адреса (указатель).
C++
1
2
3
4
5
6
7
int value = 7;// переменная
int* pointer; // как ни странно, тоже переменная, со своим адресом в памяти
 
pointer = &value; // в переменной pointer находится адрес переменной value
 
cout << pointer;  // содержимое переменной pointer, т.е. адрес переменной value
cout << &pointer // адрес переменной pointer.
Понятней стало?
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
13.12.2010, 14:24     Бесконечные адреса одной переменной. МоСК кипит... #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main()
{
        int val = 7;
 
        int *ptr1 = &val;
        int *ptr2 = ptr1;
 
        printf("address of var: %p\n", &val);
        printf("value of ptr1: %p\n", ptr1);
        printf("address of ptr1: %p\n", &ptr1);
        printf("value of ptr2: %p\n", ptr2);
        printf("adress of ptr2: %p\n", &ptr2);
 
        return 0;
}
RUSya82
 Аватар для RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
13.12.2010, 14:24     Бесконечные адреса одной переменной. МоСК кипит... #6
Цитата Сообщение от Japanese Посмотреть сообщение
Значит каждый адрес имеет свой собственный адрес?
Нет, это значит, что переменная указатель имеет свой собственный адрес
Japanese
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 120
13.12.2010, 14:28  [ТС]     Бесконечные адреса одной переменной. МоСК кипит... #7
все понял всем спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 14:32     Бесконечные адреса одной переменной. МоСК кипит...
Еще ссылки по теме:

C++ Обязательно ли объявлять переменную для хранения адреса переменной как указатель?
C++ Поиск одной переменной под другой
C++ Находятся ли ip-адреса в одной сети

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
RUSya82
13.12.2010, 14:32     Бесконечные адреса одной переменной. МоСК кипит...
  #8

Не по теме:

Хм, почему то который раз при отправке быстрого ответа, сообщения по два раза отправляются

Yandex
Объявления
13.12.2010, 14:32     Бесконечные адреса одной переменной. МоСК кипит...
Ответ Создать тему
Опции темы

Текущее время: 05:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru