#include <iostream>
// Define incrementPtr(int* x)
// Increment the value pointed to by x
// Do nothing if x is nullptr
void incrementPtr(int *x){
if(x!=nullptr){
(*x)++;
}
}
// Define incrementRef(int& x)
// Increment the referenced value
void incrementRef(int &x){
x++;
}
int main() {
int n;
std::cin >> n;
int a = n;
incrementPtr(&a);
std::cout << "After incrementPtr: " << a << "\n";
int b = n;
incrementRef(b);
std::cout << "After incrementRef: " << b;
return 0;
}
Solving Approach
-when passing by pointer, its value is directly incremented
-while passing by reference, x becomes bind to b. chnages made to x is reflected on b