Introduction
You can access an array element by using a pointer. For example, if an array stores integers, then you can use a pointer to integer to access array elements.
Program
#includevoid printarr(int a[]); void printdetail(int a[]); main() { int a[5]; for(int i = 0;i<5;i++) { a[i]=i; } printdetail(a); } void printarr(int a[]) { for(int i = 0;i<5;i++) { printf("value in array %d\n",a[i]); } } void printdetail(int a[]) { for(int i = 0;i<5;i++) { printf("value in array %d and address is %8u\n",a[i],&a[i]); } } void print_usingptr(int a[]) \\ A { int *b; \\ B b=a; \\ C for(int i = 0;i<5;i++) { printf("value in array %d and address is %16lu\n",*b,b); \\ D b=b+2; \\E } }
Explanation
-
The function print_using pointer given at statement A accesses elements of the array using pointers.
-
Statement B defines variable b as a pointer to an integer.
-
Statement C assigns the base address of the array to b, thus the array's first location (a[0]) is at 100; then b will get the value 100. Other elements of the array will add 102,104, etc.
-
Statement D prints two values: *b means the value at the location specified by b, that is, the value at the location 100. The second value is the address itself, that is, the value of b or the address of the first location.
-
For each iteration, b is incremented by 2 so it will point to the next array location. It is incremented by 2 because each integer occupies 2 bytes. If the array is long then you may increment it by 4.
Points to Remember
-
Array elements can be accessed using pointers.
-
The array name is the pointer constant which can be assigned to any pointer variable.
No comments:
Post a Comment