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

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

Войти
Регистрация
Восстановить пароль
 
a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
#1

Почему указатели имеют одинаковые адреса - C++

25.09.2010, 18:59. Просмотров 497. Ответов 4
Метки нет (Все метки)

Например, если взять указатели на массивы.

**m имеет тот же адрес, что и *m, что и m
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2010, 18:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему указатели имеют одинаковые адреса (C++):

Почему адреса одинаковые? - C++
Обьясните пожалуйста код, почему адреса одинаковые? #include <iostream> using namespace std; int main() { char *s =...

Почему при присваивании адреса массива не ставится знак '&' получения адреса - C++
int main() { int a = { 2, 3 }; int* b; b = a; //Почему при присваивании адреса массива не ставится знак '&' получения адреса. ...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

указатели и адреса. - C++
Пользователь вводит с клавиатуры строку – предложение с пробелами и знаками пунктуации длиной до 100 символов. Вывести на экран адреса...

Адреса и указатели - C++
Приветствую! Не могу понять, как работать с указателями и адресами для переменных. Если можно, как можно проще объясните, коль не сложно....

Указатели, адреса и значения - C++
У меня 2 вопроса по поводу указателей. Прошу знатоков С++ помочь разобраться 1. Есть код int a = 5; int b = 4; int *c =...

4
CyBOSSeR
Эксперт С++
2305 / 1675 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 19:03 #2
a91, пример кода подтверждающий данное явление приведите.
1
M128K145
Эксперт С++
8299 / 3519 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
26.09.2010, 11:30 #3
a91, дело в том, что **m - это указатель на массив указателей *m на массивы.
Адрес массива совпадает с адресом его первого элемента. Вот и получается, что **m указывает на первый элемент массива указателей *m, т.е. адреса **m и *m совпадают, так как ссылаются на один и тот же элемент
1
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
26.09.2010, 13:25 #4
M128K145, адреса у **m и *m разные
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
    
int main(void){
    int i;
    int ** m = (int**)malloc(sizeof(int*) * 2);
    for ( i = 0; i < 2; ++i )
        m[i] = (int*)malloc(sizeof(int) * 2 );
    printf("&m\t=\t%p\n&m[0]\t=\t%p\n&m[0][0] =\t%p\n", &m, &m[0], &m[0][0]);
    printf("m\t=\t%#X\nm[0]\t=\t%#X\n", m, m[0]);
    
    return 0;
}
1
a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
30.09.2010, 15:56  [ТС] #5
Приношу извинения, что долго не отвечал.
Все, теперь я разобрался!!!)
0
30.09.2010, 15:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2010, 15:56
Привет! Вот еще темы с ответами:

Строки, указатели и адреса - C++
есть код { char *str=&quot;Welcome&quot;; cout&lt;&lt;str&lt;&lt;&quot; &quot;&lt;&lt;(void *)str&lt;&lt;&quot; &quot;&lt;&lt;&amp;str&lt;&lt;endl; for (int i=0;i&lt;8;i++) { cout&lt;&lt;str&lt;&lt;&quot; /...

Указатели и адреса объектов - C++
Вот код: #include &lt;conio.h&gt; #include &lt;iostream.h&gt; void main() { clrscr(); int a,b,*pa=&amp;a,*pb=&amp;b,z=pb-pa; ...

Адреса и указатели на языке С++ - C++
Pomogite pliz((( #include &lt;iostream.h&gt; typedef int* IntPtrType; int main() { IntPtrType ptr_a,ptr_b; int num_c=4, num_d=7; ...

Список студентов. Определить, сколько среди них имеют одинаковые фамилии - C++
Задание - Текст - это список студентов . Определить , сколько среди них имеют одинаковые фамилии. Господа, спасайте. Преподаватель будет...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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