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

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

Восстановить пароль Регистрация
 
a91
 Аватар для a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
25.09.2010, 18:59     Почему указатели имеют одинаковые адреса #1
Например, если взять указатели на массивы.

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

C++ строки, указатели и адреса
указатели и адреса. C++
Адреса и указатели на языке С++ C++
C++ Адреса и указатели
C++ Указатели и адреса объектов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 19:03     Почему указатели имеют одинаковые адреса #2
a91, пример кода подтверждающий данное явление приведите.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
26.09.2010, 11:30     Почему указатели имеют одинаковые адреса #3
a91, дело в том, что **m - это указатель на массив указателей *m на массивы.
Адрес массива совпадает с адресом его первого элемента. Вот и получается, что **m указывает на первый элемент массива указателей *m, т.е. адреса **m и *m совпадают, так как ссылаются на один и тот же элемент
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
a91
 Аватар для a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
30.09.2010, 15:56  [ТС]     Почему указатели имеют одинаковые адреса #5
Приношу извинения, что долго не отвечал.
Все, теперь я разобрался!!!)
Yandex
Объявления
30.09.2010, 15:56     Почему указатели имеют одинаковые адреса
Ответ Создать тему
Опции темы

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