Difference between revisions of "Interview Preparation topic : Pointers in C"
From Embedded Systems Learning Academy
					
										
					
					| Proj user14 (talk | contribs) | Proj user14 (talk | contribs)  | ||
| Line 15: | Line 15: | ||
| } | } | ||
| − | When the following code is compiled and executed: | + | When the following code is compiled and executed:<br> | 
| − | |||
| Address of temp variable: edf53400<br> | Address of temp variable: edf53400<br> | ||
| Address of temp1 variable: adf9a5f6 | Address of temp1 variable: adf9a5f6 | ||
Revision as of 22:59, 10 December 2016
What is a Pointer?
A pointer is a variable which contains the address in memory of another variable. Every variable is a memory location and every memory location has its address defined which can be accessed using ampersand (&) operator, which denotes an address in memory.
Lets Look at the following example:
- include <stdio.h>
int main ()
{
  int  temp;
  int temp1;
  printf("Address of temp variable: %x\n", &temp );
  printf("Address of temp1 variable: %x\n", &temp1 );
  return 0;
}
When the following code is compiled and executed:
Address of temp variable: edf53400
Address of temp1 variable: adf9a5f6
To declare a pointer to a variable do:
type *pointer;
Where type can be int, double, float, char and pointer can be any variable.
Consider the following example:
- include <stdio.h>
int main () {
  int  temp= 20;                                      /* Stores the value 20 in variable temp */
  int  *ip;                                           /* Declares a pointer variable of type int */
  ip = &temp;                                         /*store address of temp in pointer variable, so now the address of temp will be in ip */
  printf("Address of temp variable: %x\n", &temp);    /* print the address of variable temp */
  printf("Address stored in ip variable: %x\n", ip ); /* prints the address stored in variable ip */
  printf("Value of *ip variable: %d\n", *ip );        /* prints the value stored at address ip, this is also known as dereferencing of a pointer */
  return 0;
}
 
							