C language

POINTERS Illustration

The pointer, as the name suggests, is something which is pointing to or directing to something. The pointer is used to store the address of another variable and the data type of the pointer is same as data type of variable it is pointing to. As the variable which points to other variable is called pointer and the variable which is pointed to by the pointer is called pointee. We represent the relation between the two as:

www.exploreroots.com

We can also have pointer to pointer and we declare it as:

Int **z;

z=&y;

And the memory map can be represented as:

www.exploreroots.com
int* x;
int* y;
int i;
int j;

Memory map at this moment is as:

www.exploreroots.com

x=&i; // the statement assigns the pointee i to pointer x or we can say address of i is stored in variable x.

www.exploreroots.com

*x=2; // the pointee of x gets the value 2. This statement is equivalent to i=2;

Memory map at this moment is as:

www.exploreroots.com

*y=4// ERROR as no pointee is assigned

Remember that using pointers, we need to do two tasks: one creating a pointer and other as assigning a pointee to pointer. In the above example one task was done and hence the ERROR.

y=x; // this statement assigns the pointee of x to y also. Hence pointee of both x and y are same.

Memory map at this moment is as:

www.exploreroots.com

*y=4; //As pointee for both x and y are same. Hence changing the value of one would change the same for other.

Memory map at this moment is as:

www.exploreroots.com

y=&j;// Now pointer y is assigned a new pointee j.

Memory map at this moment is as:

www.exploreroots.com

Hence now both pointers points to different memory locations.

*y=8;

 Memory map at this moment is as:

www.exploreroots.com

*y=x; // gives an ERROR as data types don’t match. x is not an int but pointer to int

x=*y; // gives ERROR again as *y is not Int* but int. In other words *y is not a pointer but a Int value while x is int* i.e. pointer to int.

*y=i; // both the data types are same INT and hence value of i is assigned to pointee of y.

i=7; // value of i is changed i.e. pointee of x is changed

Memory map at this moment showing result of above 2 statements is as:

www.exploreroots.com

x=y; // both x& y are int* i.e. pointers. Now both pointers point to same place and previous pointee of x retains the value.

Memory map at this moment is as:www.exploreroots.com

49 Replies to “POINTERS Illustration

  1. Pingback: namo333
  2. Pingback: AMBKING
  3. Pingback: Saphir Thailand
  4. Pingback: luk666
  5. Pingback: socom 16
  6. Pingback: vuse prismatic
  7. Pingback: car detailing
  8. Pingback: marbo 9000 puff
  9. Pingback: SWS Marketing
  10. Pingback: faw99
  11. Pingback: ..
  12. Pingback: Engineering
  13. Pingback: altogel
  14. Pingback: รถ6ล้อ
  15. Pingback: lost mary vapes
  16. Pingback: โคมไฟ
  17. Pingback: สล็อต888
  18. Hey There. I foujd your weblog tthe usage off
    msn. Thhat is a veryy neeatly written article. I’ll be sure tto bookmark itt aand return too reawd extrra off ylur helpgul info.
    Than you forr the post. I will definitely return.

  19. Pingback: joker369
  20. Pingback: couples massage
  21. Pingback: kc9
  22. Pingback: ufa789
  23. Pingback: lapt789
  24. Pingback: Lowara

Leave a Reply

Your email address will not be published. Required fields are marked *