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

Указатель - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задачка"Целочисленная арифметика" http://www.cyberforum.ru/cpp-beginners/thread1145809.html
Произведение п первых нечетных чисел равно р. Сколько сомножителей взято? Если введенное число п не является указанным произведением, сообщить об этом. В общем не понятно дано условие=>и вопрос, либо я не догоняю сути :( Напишите код если кому не сложно, желательно с комментариями. Добавлено через 1 час 13 минут Всё ещё актуально!
C++ Задача на вычисление суммы рядов Помогите, пожалуйста. SOS!!!111 Как закодить на Си формулу С(с черточкой)? Я запуталась или что-то неправильно поняла т_Т. Файлы с задачей и переводом прикреплены. А вот начало кода: #include <stdio.h> int main(){ int T, n, w, u, p, 4islopi, ; float C; scanf("%d\n",&T); while(T--){ scanf("%d %d\n",&n, &w); http://www.cyberforum.ru/cpp-beginners/thread1145808.html
C++ Стоимость Лицензии
Сколько стоить лицензия С++ ? И кого-нибудь есть данная лицензия ?
Еще одна задача на класс C++
Напишите класс, описывающий вектор в пространстве. Перегрузите для него операции: "+" - для сложения векторов, "-" - для вычитания, "*" - для скалярного произведения и умножения на число. Подберите операцию, которая могла бы быть перегружена для вычисления произведения векторов, и перегрузите её. Предусмотрите метод, находящий модуль вектора. Напишите программу, проверяющую правильность работы...
C++ Задача на классы http://www.cyberforum.ru/cpp-beginners/thread1145796.html
Опишите класс с именем Price, содержащий следующие закрытые элементы данных: • название товара; • название магазина, в котором продается товар; • стоимость товара в руб. Также предусмотрите открытую элемент-функцию, которая сравнивает некоторую строку с названием товара. Для этого используйте функцию стандартной библиотеки strcmp (её прототип находится в заголовнчном файле cstring). Она имеет...
C++ Шифрование данных Доброго времени суток дорогие друзья.. помогите пожалуйста закончить задачу. Есть код который считает количество вхождений символов в строку с последующим кодированием и декодированием исходного текста.. нужно добавить небольшой диалог с пользователем... что то типа Здравствуйте что вы желаете ? 1.закодировать текст 2.раскодировать 3.выход код прилагается #include <iostream> #include... подробнее

Показать сообщение отдельно
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
11.04.2014, 23:20     Указатель
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const int MAX = 5;
void f(double*);
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    double array[MAX] = { 10.0, 43.1, 95.9, 58.7, 87.3 };
    f(array);
    for (int i = 0; i < MAX; i++)
        cout << "array [" << i << "]=" << array[i] << " сантиметров" << endl;
    _getch();
    return 0;
}
void f(double *p)
{
    for (int i = 0; i < MAX; i++)
    *p++ *= 2.54;
}
Цитирую: "Операция * и ++ имеют одинаковый приоритет. Однако операции приоритета различаются ассоциативностью. Она определяет, как компилятор начнет выполнять операции, справа или слева. Унарные операции * и ++ имеют правую ассоциативность , компилятор выполняет сначала операцию, стоящую справа. Поэтому наше выражение *p++ интерпретируется как *(p++) и увеличивает указатель, а не то, на что он указывает. Таким образом, сначала увеличивается указатель, а затем к результату применяется операция разыменовывания. "
Получается, что при i=0 указатель указывает на нулевой элемент, теперь мы увеличиваем указатель, т.е. теперь указывает на элемент с индексом 1, применяется разыменование, и уже значение элемента с индексом 1 умножается на 2.54, а нулевой элемент не изменяется. Но программа изменяет и нулевой
лемент, ПОЧЕМУ?


Добавлено через 58 минут
Если сделать *++p, то выполняется сначала увеличение, это понятно.
В примере *p++ *= 2.54; тут же идет присваивание левой части правой, ПОЛУЧАЕТСЯ ЕСЛИ операция '++' стоит в выражении, она выполняется последней всегда?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru