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

Почему при присваивании адреса массива не ставится знак '&' получения адреса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В каждом столбце динамической матрицы поменять местами первый отрицательный элемент и последний нулевой http://www.cyberforum.ru/cpp-beginners/thread1589538.html
Написать программу в динамическом двумерном массиве: В каждом столбце двумерного массива поменять местами первый отрицательный элемент и последний нулевой.
C++ Перемножить двумерные массивы Написать программу в двумерном динамическом массиве: Даны два двумерных массива. Перемножить их как матрицы. Результат записать в третий массив. http://www.cyberforum.ru/cpp-beginners/thread1589535.html
C++ Найти наибольшее количество идущих подряд букв в тексте
Добрый вечер помогите пожалуйста Дан текст найти наибольшее количество идущих подряд букв
ООП: указатель на объект C++
Всем привет. Подскажите пожалуйста как сделать указатель (набор дочерних тематических блоков (указатели на объекты Topic)).Читал про unique_ptr но через него у меня не получается. Само задание: Объявите и реализуйте класс Topic, моделирующий тематический блок лекции: в объекте Topic необходимо хранить следующие данные: название блока (строка); количество слайдов (целое число); набор...
C++ Найти индекс максимального элемента массива http://www.cyberforum.ru/cpp-beginners/thread1589516.html
Добрый вечер помогите пожалуйста в одномерном массиве состоящем из n целых элементов вычислить номер максимального элемента массива
C++ Вычислить площадь трапеции c использованием динамических массивов Вычислить площадь трапеции. Написать программу с использованием динамических массивов, вводя размер массива с клавиатуры. подробнее

Показать сообщение отдельно
Apparat_UA
5 / 5 / 2
Регистрация: 06.01.2015
Сообщений: 116
22.11.2015, 22:36     Почему при присваивании адреса массива не ставится знак '&' получения адреса
В случае с массивом, его имя является указателем. На самом деле такой формат mas[i] упрощение такого *(mas+i). Если просто написать *mas, то будем ссылаться на первый элемент так как *(mas+0). В памяти элементы массива распределяются друг за другом, компилятор определяет какого типа данные в массиве и когда мы пишем *(mas+i), он как бы доумножает это i на кол-во байт, выделяемых под каждый элемент. Если массив целых чисел, адреса будут отличать на 4 байта. Так суммируя адреса он доходит до нужного и просто разыменовывает его. То есть, если писать mas+i мы будем получать адреса элементов, что эквивалентно &mas[i].
 
Текущее время: 10:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru