+ 1
[C++] ¿What is the difference between this expressions?
I am at the dynamic memory part of C++, and I'm still quite confused about pointers. I have 2 doubts/Questions. CASE 1/Q 1: Expression 1: int * p; Expression 2: int *p; ¿Are they the same? --------------------- CASE 2/Q 2: Expression 1: int * p; p = 5; Expression 2: int * p; *p = 5; or int *p; *p = 5; ¿What does the pointer do when assigned with * here? ¿Whats the difference between asign with * and without *?
3 Respuestas
+ 11
IIRC:
int * p, int* p and int *p is the same. They all declare a pointer p which can be used to store address of integer variables.
int *p; *p = 5; and int* p; p = 5; is not the same. A pointer stores the address of a variable. * (point-to) operator tells the program to point to the variable whose address is stored in the pointer. When we do p = 5; we store the value 5 into the pointer. When we do *p = 5; we store the value 5 into an integer variable whose address is stored in the pointer. E.g.
int x = 5; // integer variable x stores value 5.
int *p;
p = &x; // p now stores address of x. (& operator returns address of a variable)
std::cout << p; // print address of x.
std::cout << *p; // print value stored in x.
+ 6
Try looking into this code written by ValentinHacker, it might help at getting to understand how & and * works.
https://code.sololearn.com/c7mW3DQoz3m0/?ref=app
+ 2
Thanks Hatsy!