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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 128
#1

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

13.12.2010, 13:54. Просмотров 385. Ответов 7
Метки нет (Все метки)

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) имеет бесконечность второстепенных адресов? Но это какбэ невозможно, памяти нехватило бы никакой
Объясните пожалуйста что тут к чему
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 13:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Бесконечные адреса одной переменной. МоСК кипит... (C++):

Возвращение адреса локальной переменной - C++
Добрый день! Нужна функция читающая из файла разные медиа-данные в память. Размер заранее неизвестен, поэтому сразу память выделить,...

Находятся ли ip-адреса в одной сети - C++
Даны два ip-адреса, определить находятся ли они в одной сети ip1 - 192.168.4.0 ip2 - 192.278.5.6 маска - 255.255.0.0

Вывод адреса переменной типа char - C++
Всем привет! Хочу задать вопрос... есть код: #include &lt;iostream&gt; int main() { char ch = 'h'; char* p = &amp;ch;

Взятие адреса у константной переменной при объявлении - C++
Можно пример?

Обязательно ли объявлять переменную для хранения адреса переменной как указатель? - C++
// Указатели #include &lt;iostream&gt; using namespace std; int Variable; int *pVariable; // int pVariable; int main() ...

Использование одной переменной - C++
У меня дано два оператора n1=dist*dist; n2=dist/dist; хочу использовать одну переменную n которая принимала бы два эти...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
13.12.2010, 14:02 #2
Еперный театр, вы выводите адреса переменных-указателей. Получаете адрес переменной, в которой хранится адрес. Вот они у вас и разные.
0
Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 128
13.12.2010, 14:10  [ТС] #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Еперный театр, вы выводите адреса переменных-указателей. Получаете адрес переменной, в которой хранится адрес. Вот они у вас и разные.
Значит каждый адрес имеет свой собственный адрес?
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
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.
Понятней стало?
1
fasked
Эксперт С++
4937 / 2517 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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;
}
1
RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
13.12.2010, 14:24 #6
Цитата Сообщение от Japanese Посмотреть сообщение
Значит каждый адрес имеет свой собственный адрес?
Нет, это значит, что переменная указатель имеет свой собственный адрес
1
Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 128
13.12.2010, 14:28  [ТС] #7
все понял всем спасибо
0
RUSya82
13.12.2010, 14:32     Бесконечные адреса одной переменной. МоСК кипит...
  #8

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 14:32
Привет! Вот еще темы с ответами:

Многочлен от одной переменной - C++
Описать класс многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Обеспечить следующие возможности:...

Класс многочленов от одной переменной - C++
составить класс многочленов от одной переменной,задаваемых степенью многочлена и массивом коэффициентов.Предусмотреть методы для вычисления...

Текст и числа в одной переменной - C++
Как организовать следующее: программа просит пользователя ввести имя файла (имя может содержать цифры), потом к этому имени прибавляется ...

Соответствие одной переменной другой - C++
Такая задача: Есть 4 числа: a = &quot;0 1 0 2&quot;; Есть частоты, каждая из которых передает отдельный символ: f = &quot;800 900 1000 1100&quot; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru