хорошо, я смотрю на код здесь, и идея трудно понять.Путаница о указателях и адресах их памяти
#include <iostream>
using namespace std;
class Point
{
public :
int X,Y;
Point() : X(0), Y(0) {}
};
void MoveUp (Point * p)
{
p -> Y += 5;
}
int main()
{
Point point;
MoveUp(&point);
cout << point.X << point.Y;
return 0;
}
Хорошо, так что я считаю, что класс создается и X и Y были объявлены и они помещаются внутри конструктора
создан метод и аргумент точки * р, что означает, что мы будут придерживаться указателя конструктора внутри функции;
Теперь мы создаем объект, называемый точкой, затем вызываем наш метод и помещаем в него адрес указателя?
не является адресом указателя только для номера памяти, такого как 0x255255?
и почему не было объявлено?
(int * p = Y)
Что такое память? что его можно использовать в качестве аргумента?
Убедитесь, что ваш компьютер находится на ровной поверхности. Весь ваш код, похоже, скользнул влево от экрана. –
Да, я знаю, я живу в Калифорнии, что ты ожидаешь? – TimothyTech
Для чего это стоит, предпочитайте ссылки на указатели. Ссылки - это псевдонимы, и в большинстве случаев вы хотите использовать псевдоним переменной, а не указывать на нее. Ваша функция будет 'void MoveUp (Point & p) {p.Y + = 5; } ', и вы называете его' MoveUp (point); '; теперь 'p' псевдонимы' point'. С вашим кодом рассмотрите, что происходит с 'MoveUp (0);'. – GManNickG