data structures using return posoutput enter the size of the array arr[ arr[ arr[ arr[ arr[ the new array is arr[ arr[ arr[ arr[ arr[ pointers and arrays arr[ arr[ arr[ arr[ arr[ figure memory representation of the concept of array is very much bound to the concept of pointer consider fig for exampleif we have an array declared asint arr[{ }arr[then in memory it would be stored as shown in fig array notation is form of pointer notation the name of the array is the starting address of the array in memory it is also known as the base address in other wordsbase address is the address of the first element in the array or the address of arr[ now let us use pointer variable as given in the statement below int *ptrptr &arr[ ]hereptr is made to point to the first element of the array execute the code given below and observe the output which will make the concept clear to you programming tip the name of an array is actually pointer that points to the first element of the array main(int arr[]={ , , , , }printf("\ address of array % % % "arr&arr[ ]&arr) arr[ arr[ arr[ arr[ arr[ ptr figure pointer pointing to the third element of the array programming tip an error is generated if an attempt is made to change the address of the array similarlywriting ptr &arr[ makes ptr to point to the third element of the array that has index figure shows ptr pointing to the third element of the array if pointer variable ptr holds the address of the first element in the arraythen the address of successive elements can be calculated by writing ptr+int *ptr &arr[ ]ptr++printf("\ the value of the second element of the array is % "*ptr)the printf(function will print the value because after being incremented ptr points to the next location one point to note here is that if is an integer variablethen ++adds to the value of but ptr