Я изучал ссылки указателей и натолкнулся на разные способы подачи параметров. Может кто-нибудь объяснить, что на самом деле означает?
Я думаю, что первый из них прост, так что x
- это копия параметра, поданного так, что в стеке создается другая переменная.
Что касается других, я не знаю.
void doSomething1(int x){
//code
}
void doSomething2(int *x){
//code
}
void doSomething3(int &x){
//code
}
void doSomething3(int const &x){
//code
}
Я также вижу такие вещи, когда объявляются переменные. Я не понимаю различий между ними. Я знаю, что первая помещает 100
в переменную y
в стек. Он не будет создавать новый адрес или что-то еще.
//example 1
int y = 100;
//example 2
int *y = 100;
//Example 3: epic confusion!
int *y = &z;
Вопрос 1: Как использовать эти методы? Когда это наиболее уместно?
Вопрос 2: Когда я объявляю переменные таким образом?
Примеры были бы замечательными.
P.S. это одна из основных причин, по которым я не изучил С++, поскольку Java просто имеет сбор мусора. Но теперь мне нужно попасть на С++.