Я просто сделал крошечную глупую программу о передаче переменной значения, содержащейся в другом, с помощью указателя, так же, как введение в указатели. Я печатал до и после переуступки значение и положение всех трех переменных. Тем не менее, я получаю, как значение, содержащееся внутри указателя, адрес, отличный от переменной, на которую он указывает, и я просто не могу понять, почему.C++: значение указателя отличается от адреса заостренной переменной
Это моя основная программа:
#include <iostream>
#include "01.Point.h"
using namespace std;
int main()
{
int a,b;
cout << "Insert variable's value: ";
cin >> a;
int * point;
cout << "Before assignment:" << endl;
printeverything (a,b,point);
point = &a;
b = * point;
cout << "After assignment:" << endl;
printeverything (a,b,point);
cout << endl;
}
И это реализация моей функции в:
#include <iostream>
#include "01.Point.h"
using namespace std;
void printeverything (int a, int b, int * c) {
cout << "First variable's value: " << a << "; its address: " << &a << endl;
cout << "Second variable's value: " << b << "; its address: " << &b << endl;
cout << "Pointer's value: " << c << "; its address: " << &c << endl;
}
б успешно получает свою стоимость, так что все работает правильно, но это полный выход:
Before assignment:
First variable's value: 5; its address: 0x7fffee49b77c
Second variable's value: 0; its address: 0x7fffee49b778
Pointer's value: 0x7fffee49b8a0; its address: 0x7fffee49b770
After assignment:
First variable's value: 5; its address: 0x7fffee49b77c
Second variable's value: 5; its address: 0x7fffee49b778
Pointer's value: 0x7fffee49b7ac; its address: 0x7fffee49b770
Я имею в виду, если переменная x находится в положении 3285, и я делаю p = &x
, указатель p должен содержать значение 3285, правильно? Так почему это происходит?
Большое спасибо! Затем я решил изменить прототип моей функции на '(int * a, int * b, int * c)', две переменные: '' '' '' '' '' '' '' '' '' '' '' и ' printeverything (& a, & b, point); '. Имейте хороший день, я думаю, я могу узнать, как правильно передать ссылки на функции! –