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

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

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

Показать сообщение отдельно
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,990
Записей в блоге: 22
23.11.2015, 13:41
Или, скажем так, упрощение?

Добавлено через 10 минут
У Праты вот:
Цитата Сообщение от Стивен Прата
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
// addpntrs.cpp -- pointer addition
#include <iostream>
int main()
{
    using namespace std;
    double wages[3] = {10000.0, 20000.0, 30000.0};
    short stacks[3] = {3, 2, 1};
 
// Here are two ways to get the address of an array
    double * pw = wages;     // name of an array = address
    short * ps = &stacks[0]; // or use address operator
// with array element
    cout << "pw = " << pw << ", *pw = " << *pw << endl;
    pw = pw + 1;
    cout << "add 1 to the pw pointer:\n";
    cout << "pw = " << pw << ", *pw = " << *pw << "\n\n";
 
    cout << "ps = " << ps << ", *ps = " << *ps << endl;
    ps = ps + 1;
    cout << "add 1 to the ps pointer:\n";
    cout << "ps = " << ps << ", *ps = " << *ps << "\n\n";
 
    cout << "access two elements with array notation\n";
    cout << "stacks[0] = " << stacks[0] 
         << ", stacks[1] = " << stacks[1] << endl;
    cout << "access two elements with pointer notation\n";
    cout << "*stacks = " << *stacks
         << ", *(stacks + 1) =  " << *(stacks + 1) << endl;
 
    cout << sizeof(wages) << " = size of wages array\n";
    cout << sizeof(pw) << " = size of pw pointer\n";
    // cin.get();
    return 0; 
}
В большинстве контекстов C++ интерпретирует имя массива как адрес его
первого элемента. Таким образом, следующий оператор создает pw как указатель на тип
double, затем инициализирует его wages, который также является адресом первого
элемента массива wages:
C++
1
double * pw = wages;
Для wages, как и любого другого массива, справедливо следующее утверждение:
C++
1
wages = &wages[0] = адрес первого элемента массива
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru