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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
arfaa
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 27
#1

Изменение переменной перез указатель - C++

27.04.2012, 15:14. Просмотров 1484. Ответов 3
Метки нет (Все метки)

Здравствуйте, есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
void f(int *j);
int main()
{
 int i;
 int *p;
 p=&i;
 f(p);
 cout<<i;
 return 0;
}
void f(int *j)
{
 *j=100;
}
Вопрос заключается в непонимании вывода значения i. р содержит адрес i -> параметр-указатель *j принимает значение аргумента р -> p и j теперь оба указывают на переменную i, указатель j получил значение 100. Почему i=100? Ведь в коде нигде не указано само значение i,указывается только его адрес с помощью символа "&", в каком месте происходит запись в i числа 100 и каким образом?
Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2012, 15:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменение переменной перез указатель (C++):

Указатель является переменной-членом класса - C++
#include &lt;iostream&gt; class SimpleCat { public: SimpleCat(); ~SimpleCat(); int GetAge() const { return *itsAge; } void...

Конвертирование константной строковой переменной в указатель на char - C++
Помогите исправить ошибку в коде #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;math.h&gt; #define PRECISION &quot;%6.2f&quot; // формат...

Какое поле у структурной переменной содержащей указатель? - C++
Добрый день! Только учу С++. И, вот , возник вопрос. Обычная структура, например. struct sct { int d; int f; } sct s; ...

Изменение константной ссылки в обычную или указатель - C++
Добрый день, вопрос в названии темы. Как из константной ссылки получить обычную или указатель , чтго бы можно было изменять объект?

Используя вместо самой переменной указатель на нее написать программу - C++
Используя вместо самой переменной указатель на нее написать программу. #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; ...

Как передать указатель функции, чтобы значение переменной изменилось? - C++
Имеются переменная и указатель на нее. int x, *y = &amp;x; Как передать указатель ф-ии, чтобы значение переменной изменилось?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
27.04.2012, 15:25 #2
Число 100 - это значение записанное по адресу j, равного значению переменной p,
которой присвоили значение адреса переменной i. В результате i равно 100.
p == j, *j == *p == 100

int i = 10; // произвольное значение типа int.
int *p = &i; // Получаем адрес переменной i и присваеваем его указателю p.
// &-оператор вычисления адреса, * - оператор обозначения указателя.
int* j = *p; // Присвоили значения адреса p указателю j.
*p = 100; // Присвоили значение 100 по заданному адресу p.
2
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
27.04.2012, 15:31 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
void f(int *j);
 
int main()
{
    int i;
    int *p; //указатель на тип int
    p=&i; //р содержит адрес i
    f(p); //передаем адрес i; работаем со значением, находящимся по этому адресу
    cout<<i;
    return 0;
}
void f(int *j) //*j - то же самое, что и i - происходит разыменование
{
    *j=100; //работаем со значением
}
return 0;
}
1
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
27.04.2012, 15:35 #4
Нет "разименование" указателя происходит тогда когда используем ссылки int*&j = (int*&)p;
Простейший пример его - int a = 10; int& b= a; - "разыменование" переменной, а указателя
см. выше.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2012, 15:35
Привет! Вот еще темы с ответами:

Как получить ссылку на указатель или указатель на указатель в массиве? - C++
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

Обязательно ли объявлять переменную для хранения адреса переменной как указатель? - C++
// Указатели #include &lt;iostream&gt; using namespace std; int Variable; int *pVariable; // int pVariable; int main() ...

Используя вместо самой переменной указатель на нее написать программу в соответствии с заданием: - C++
3) Даны значения a и b, найти их среднее арифметическое, среднегеометрическое.

Используя указатель на переменную типа string, удалить последний символ этой переменной - C++
есть указатель на переменную string,нужно удалить последний символ этой переменной работая с указателем.Как это осуществить?Заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.04.2012, 15:35
Ответ Создать тему
Опции темы

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