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

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

Войти
Регистрация
Восстановить пароль
 
jon_illien
3 / 3 / 1
Регистрация: 14.08.2012
Сообщений: 78
#1

Синонимы операций взятия адреса массива (arr и &arr) - C++

08.10.2012, 15:39. Просмотров 740. Ответов 3
Метки нет (Все метки)

возможно коряво написал заголовок, да и сам вопрос банальный. после создании лок. массива его адрес можно получить при помощи его имени или &имя. После вызова др. ф-ции и передачи ему копии мас, повторяю те же операции. &ar - показывает другой адрес, а ar - адрес прежнего массива


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    int ar[5];
 
    cout << &ar << endl;    // 1000
    cout << ar << endl;      // 1000
 
    f(ar);
 
    return 0;
}
 
void f(int ar[])
{
    cout << &ar << endl;    //1204
    cout << ar << endl;      //1000
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 15:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Синонимы операций взятия адреса массива (arr и &arr) (C++):

Почему *arr И arr[] одинаковые, но в тоже время разные? - C++
Например есть какая-то ф-я:void temp(int &amp;(*arr)) { // . . . } И 2 разных массива которые будем передавать ф-и:int main(void) ...

чем отличается *(arr+1) от *(arr++)? - C++
подскажите пожалуйста в чем отличие между *(arr+1) и *(arr++), допустим char arr=&quot;qwertyuiop&quot;; while(*arr!='\0') { ...

Найти длину массива arr[] - C++
Доброго времени суток :) Задача: Пользователь вводит числа или текст, когда введет '0' то ему выдаст кол-во элементов в массиве. ...

int *arr или int arr[10] - C++
Подскажите, корректно ли использовать для объявления массива или строки int *arr; char *srt; Так же и некоторые переменные...

Объявление массива int *arr почему так - C++
Объявление массива int *arr почему так, а не int arr, что означает *

Оператор взятия адреса (&) - C++
while (true) { int *temp = new int(13); std::cout &lt;&lt; temp &lt;&lt; &quot; &quot;; std::cout &lt;&lt; &amp;temp &lt;&lt; std::endl; } Создаю каждый раз...

3
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
08.10.2012, 15:43 #2
Адрес первого элемента - arr или &arr[0];
&arr - адрес указателя на первые элемент массива
2
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.10.2012, 15:45 #3
Цитата Сообщение от jon_illien Посмотреть сообщение
помощи его имени или &имя
вы не правы, адрес получается либо указанием имени arr либо адрес первого элемента
т.е arr = &arr[0];
arr = *(&arr);
1
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.10.2012, 15:54 #4
Цитата Сообщение от doctor_lecter Посмотреть сообщение
&arr - адрес указателя на первые элемент массива
Это в каком случае? Вот в таком случае что такое &arr?
C++
1
2
int arr[10];
std::cout << &arr:
?

Добавлено через 7 минут
jon_illien, в случае функции, хотя вы и объявили параметр как int ar[], фактически он рассматривается компилятором как int *ar. И беря его адрес, вы берёте адрес самого параметра функции, а не адрес массива, который вы по указателю передали в функцию.
0
09.10.2012, 15:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2012, 15:54
Привет! Вот еще темы с ответами:

byte arr to int - C++
int i; byte arr = {0x31,0x31,0x31,0x31,0x31}; нужно из массива arr пoлучить i=11111; как это зделать? Добавлено через 11...

Двумерный массив передать через **arr - C++
Добрый день. Поискал похожие темы, кое-что нашел, но у меня проблема в том, что мне нужно передать уже созданный двумерный массив int arr...

Не ожиданный результат, указатель на char arr[] - C++
Объясните пожалуйста каким образом, получается такой результат Без цикла вложенного в цикл? int main() { void func(char*); ...

Как работает операция взятия адреса "&"? - C++
В каждой переменной есть адрес,так вот,когда операция взятия адреса берёт адрес,она его копирует?И тогда адрес остаётся в переменной и в...


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

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

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