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

Указатели в С++ и Java. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ многомерный массив http://www.cyberforum.ru/cpp-beginners/thread451080.html
помогите сделать задачу через указатели Сформировать массив типа char размером в 7х5х8 элементов. Проинициализировать его случайными символами от A до Z. Вывести строки, в которых встретилась встретилась буква 'W'. (Строки - это второй индекс справа, их всего 7*5).
C++ Найдите ошибку... C++ изучать начал недавно. Вот написал программу и столкнулся с проблемой. #include <iostream.h> class Employee { public: void SetAge(int Age) { Age = itsAge; } void SetYOS(int YOS) { YOS = itsYOS; } void SetSalary(int Salary) { Salary = itsSalary; } http://www.cyberforum.ru/cpp-beginners/thread451076.html
Определить самое встречающееся число в массиве C++
Определить, какое абсолютное значение встречается в массиве чаще чем другие. диапазон значений -50 - 50, размерность массива 200. То, что я сделала, это задала рандом массив значениями от -50 - 50 и размерностью 200. а вот дальше зависла #include<iostream> #include <stdio.h> #include<cstdlib> using namespace std; int main() {
C++ Отобразить симметрично относительно вертикальной оси секторы матрицы...
Напишите программу, пожалуйста. Заполнить матрицу случайными числами. Отобразить симметрично относительно вертикальной оси секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей.
C++ Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов http://www.cyberforum.ru/cpp-beginners/thread451059.html
Размерность массива (100) Диапазон значений (-100 - +100) Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов Пожалуйста, напишите такую программу.
C++ код грея здравствуйте. помогите пожалуйста с кодом задачи, я не могу додуматься никак. у нас есть n-мерный куб. и надо обойти все вершины это куба с помощью кода Грея(увеличение одного разряда). ну и просто вывести. получается как таблица 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 . . . . . . и так далее подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
23.02.2012, 00:11
Отвечу на исходный вопрос (ответы в теме какие-то спонтанные, так и не понял, прозвучал ли уже ответ или нет):

Цитата Сообщение от Грымзик Посмотреть сообщение
Значит в плюсах тоже в функцию передается значение указателя?
Да, в указатель передаётся по значению. Рассмотрим на примере:
C++
1
2
3
4
void foo(int x){/* ... */}
//...
int y = 10;
foo(y);
Здесь функция принимает целое число по значению. Т.е. переменные x и y никак не связаны.
А теперь это:
C++
1
2
3
4
5
void bar(int *px){/* ... */}
//...
int a = 10;
int *py = &a;
foo(y);
Теперь как px, так и py указывают на одну и ту же область памяти - на память, ассоциированную с переменной a. Однако сами переменные px и py никак не связаны, как и в первом случае. Просто они, как и в первом случае, содержат одинаковое значение, которое может трактоваться как адрес в памяти. Поэтому, хотя мы и можем изменить значение по этому адресу, и это отразится в обеих частях программы, но изменение переменной в вызываемой функции никак не отразится на изменение переменной в вызывающей. Чтобы изменить сам указатель, его также надо передавать через указатель. Т.е. чтобы изменить некоторое непосредственное (не косвенное) значение, его надо передать через указатель. Чтобы изменить n-рной указатель, надо передавать его в функции через (n+1)-рной указатель.

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