blogger Indonesia

Follow judhyns blog

POINTER ARRAYS

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

 #include  void 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

  1. Statement A declares an array of pointers so each element stores the address.

  2. Statement B declares integer variables and assigns values to these variables.

  3. 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.

  4. 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]).

  5. 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:

feed

PR Check

activesearchresults

judhyn's blog

 

http://www.judhyn.blogspot.com | |