Difference between revisions of "Interview Preparation topic : Pointers in C"
Proj user14 (talk | contribs) |
Proj user14 (talk | contribs) |
||
| Line 29: | Line 29: | ||
#include <stdio.h> | #include <stdio.h> | ||
int main () { | int main () { | ||
| − | int temp= | + | int temp= 100; /* Stores the value 20 in variable temp */ |
| − | int * | + | int *ptr; /* 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 = &temp; /*store address of temp in pointer variable, so now the address of temp will be in ptr */ |
printf("Address of temp variable: %x\n", &temp); /* print the address of variable temp */ | printf("Address of temp variable: %x\n", &temp); /* print the address of variable temp */ | ||
| − | printf("Address stored in | + | printf("Address stored in ptr variable: %x\n",ptr ); /* prints the address stored in variable ptr */ |
| − | printf("Value of * | + | printf("Value of *ptr variable: %d\n", *ptr ); /* prints the value stored at address ptr, this is also known as dereferencing of a pointer */ |
return 0; | return 0; | ||
} | } | ||
| + | |||
| + | When we compile and execute the following code:<br> | ||
| + | |||
| + | |||
| + | Address of temp variable: bffd8b3c | ||
| + | Address stored in ip variable: bffd8b3c | ||
| + | Value of *ip variable: | ||
Revision as of 23:03, 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= 100; /* Stores the value 20 in variable temp */
int *ptr; /* 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 ptr */
printf("Address of temp variable: %x\n", &temp); /* print the address of variable temp */
printf("Address stored in ptr variable: %x\n",ptr ); /* prints the address stored in variable ptr */
printf("Value of *ptr variable: %d\n", *ptr ); /* prints the value stored at address ptr, this is also known as dereferencing of a pointer */
return 0;
}
When we compile and execute the following code:
Address of temp variable: bffd8b3c
Address stored in ip variable: bffd8b3c
Value of *ip variable: