Introduction
You can define a pointer array similarly to an array of integers. In the pointer array, the array elements store the pointer that points to integer values.
Program
#includevoid printarr(int *a[]); void printarr_usingptr(int *a[]); int *a[5]; \\ A main() { int i1=4,i2=3,i3=2,i4=1,i5=0; \\ B a[0]=&i1; \\ C a[1]=&i2; a[2]=&i3; a[3]=&i4; a[4]=&i5; printarr(a); printarr_usingptr(a); } void printarr(int *a[]) \\ D { printf("Address Address in array Value\n"); for(int j=0;j<5;j++) { printf("%16u %16u %d\n", a[j],a[j],a[j]); \\E } } void printarr_usingptr(int *a[]) { int j=0; printf("using pointer\n"); for( j=0;j<5;j++) { printf("value of elements %d %16lu %16lu\n",**a,*a,a); \\ F a++; } }
Explanation
-
Statement A declares an array of pointers so each element stores the address.
-
Statement B declares integer variables and assigns values to these variables.
-
Statement C assigns the address of i1 to element a[0] of the array. All the array elements are given values in a similar way.
-
The function print_arr prints the address of each array element and the value of each array element (the pointers and values that are pointed to by these pointers by using the notations &a[i], a[i] and *a[i]).
-
You can use the function printarr_usingptr to access array elements by using an integer pointer, thus a is the address of the array element, *a is the value of the array element, and **a is the value pointed to by this array element.
Point to Remember
You can store pointers in arrays. You can access values specified by these values by using the * notations.
No comments:
Post a Comment