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

Объясните работу указателей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переставить значения заданного одномерного массива http://www.cyberforum.ru/cpp-beginners/thread1306515.html
Помогите, пожалуйста, справиться с задачей! Нужно переставить значения заданного одномерного массива так, чтобы все нулевые значения оказались в конце массива, а ненулевые в начале. не нарушая порядок, в котором они следовали в исходном массиве.
C++ Написать функцию вычисления корней квадратного уравнения Напишите функцию вычисления корней квадратного уравнения. Про-грамма должна принимать от пользователя коэффициенты, вызывать функцию, а затем выводить полученный результат. Параметрами функ-ции должны быть коэффициенты и корни уравнения. Такие аргументы как корни уравнения необходимо передавать по ссылке. Значение, воз-вращаемое функцией, должно передавать в вызывающую программу ин-формацию о... http://www.cyberforum.ru/cpp-beginners/thread1306514.html
Заменить на 0 элементы массива C++
только начал изучать програмирование на C++. Заменить на 0 элементы массива, расположенные справа от наибольшего. все данные целого типа, размер массива 10 чтение данных осуществлять из файла запись необходимой информации осуществлять в файл. заранее спасибо за помощь!
Уменьшить все элементы массива на минимальный используя функцию C++
Помогите найти ошибки в программе. Дан одномерный массив из 10 вещественных чисел. Требуется преобразовать массив, уменьшив все элементы массива на минимальный элемент этого массива. Алгоритм обработки массива оформить как подпрограмму. Данные в подпрограмму передавать только через параметры функции. Саму подпрограмму поместить в другой файл. Исходный массив и результаты вывести на...
C++ Написать функцию, которая переворачивает строку http://www.cyberforum.ru/cpp-beginners/thread1306501.html
1) Напишите функцию, которая переворачивает строку (массив типа char). Используйте цикл for, который меняет местами первый и последний сим-волы, затем следующие и т.д. Строка должна передаваться в функцию как аргумент. Напишите программу, которая должна принимать от пользова-теля строку (содержащую более одного слова), вызывать функцию, а за-тем выводить полученный результат.
C++ Работа с двухмерным динамеческим массивом через указатель Натупил здесь наверное сильно, подскажите ребят, а то долго уже сиджу над этим... Где ошибки? Программу компилирует, но потом выбивает. #include <stdio.h> #include <time.h> #include <stdlib.h> #include <math.h> int main() { srand(time(NULL)); подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.11.2014, 17:03     Объясните работу указателей
Цитата Сообщение от serega006 Посмотреть сообщение
разыменовываем и получаем 100, затем +5 = 105
Не 100, а переменную со значением 100. Если получить 100, а потом выполнить +=5, то результат будет в лучшем случае выброшен, так как значение, в данном случае 100, - это константа и в него ничего поместить нельзя, то есть результат девать некуда. Тогда надо писать
C++
1
n=(*p)+=5;
. Но так как оператор разыменования возвращает не само значение 100, а переменную, то её можно увеличивать оператором составного присваивания со сложением.

Добавлено через 49 секунд
Цитата Сообщение от serega006 Посмотреть сообщение
//объявляем указатель, переменную и указатель указателя?
Да, указатель на указатель (говорят не чей, а на что), то есть двойной указатель.

Добавлено через 3 минуты
Цитата Сообщение от serega006 Посмотреть сообщение
(**q)--; // что значит ** я не особо понял.
Декремент, то есть уменьшение на 1. Чего? **q значит *(*q). Первый оператор разыменования в выражении *q возвращает указатель на int (который у нас имеет имя p), второй в выражении *(*q) разыменует уже выражение в скобках, то есть указатель p. Почему именно p? Потому что именно его адрес лежит в q, а значит его и возвращает разыменование *q.

Добавлено через 25 секунд
Цитата Сообщение от serega006 Посмотреть сообщение
cout <<p<<"\n"; //адрес 1
адрес переменной n.

Добавлено через 22 секунды
Цитата Сообщение от serega006 Посмотреть сообщение
cout <<q<<"\n"; //адрес 2
Адрес переменной p. Да, она является указателем и сама хранит адрес. Но здесь не хранимый в p адрес, а адрес, по которому лежит сама p.
 
Текущее время: 08:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru