C Tutorial/Pointer/Address and Pointers
Address and Pointers
Address
- Each variable has two attributes: address and value.
- The address is the location in memory.
- In that locaton, the value is stored.
- During the lifetime of the variable, the address is not changed but the value may change.
Pointers
- A pointer is a variable whose value is an address.
- A pointer to an integer is a variable that can store the address of that integer.
10.2.Address and Pointers 10.2.1. Address and Pointers 10.2.2. <A href="/Tutorial/C/0200__Pointer/UsingPointers.htm">Using Pointers</a> 10.2.3. <A href="/Tutorial/C/0200__Pointer/Printaddressesusingplaceholders16luorp.htm">Print addresses using place holders %16lu or %p.</a>
Print addresses using place holders %16lu or %p.
<source lang="cpp">#include <stdio.h> main() {
int a[5]; int i; for(i = 0;i<5;i++) { a[i]=i; } for(i = 0;i<5;i++) { printf("value in array %d and address is %16lu\n",a[i],&a[i]); } for(i = 0;i<5;i++) { printf("value in array %d and address is %p\n",a[i],&a[i]); }
}</source>
value in array 0 and address is 631656 value in array 1 and address is 631660 value in array 2 and address is 631664 value in array 3 and address is 631668 value in array 4 and address is 631672 value in array 0 and address is 9a368 value in array 1 and address is 9a36c value in array 2 and address is 9a370 value in array 3 and address is 9a374 value in array 4 and address is 9a378
Using Pointers
Define a pointer: include a * before the name of the variable.
Get the address: use &.
<source lang="cpp">#include <stdio.h>
main ()
{
int i; int * ia; i = 10; ia = &i; printf (" The address of i is %8u \n", ia); printf (" The value at that location is %d\n", i); printf (" The value at that location is %d\n", *ia); *ia = 50; printf ("The value of i is %d\n", i);
}</source>
The address of i is 631672 The value at that location is 10 The value at that location is 10 The value of i is 50