// uses a pointer to iterate through an array 

#include <iostream>
using namespace std;

int main()
{

  int arr[10] = {99, 35, 87, 100, 0, 7, 6, 23,  2, 700};
  int *iptr1, *iptr2;

  iptr1=arr;  // iptr points to beg of arr  
  iptr2=arr+3;	

  if(iptr1 == iptr2)   // pointer comparison  
  if (*iptr1 == *iptr2) // arr[0]==arr[3]

  // last stmt of while loop combines these 2 stmts

    cout << arr[i];
    i++;
	
// i is integer to iterate
// cout << arr[i++];   // postfix 
// cout << arr[++i];   // prefix
//using pointers:
cout << *iptr++;   // same as: *(iptr++)
// same as:
cout << *iptr;
iptr++;
// to increment the CONTENTS of iptr:
(*iptr)++;







  cout<< "Loop 1: " << endl;
//use array subscripting
  for (int i=0;i<10;i++)
      cout<< "array elt " << i << " :" << arr[i] << endl;

  cout<< "Loop 2: " << endl;
// use indirection
  for (int i=0;i<10;i++)
      cout<< "array elt " << i << " :" << *(arr+i) << endl;

  cout<< "Loop 3: " << endl;
// use indirection with iptr
  for (int i=0;i<10;i++)
      cout<< "array elt " << i << " :" << *(iptr+i) << endl;

  cout<< "Loop 4: " << endl;
// use subscripting with iptr
int i;
  for (i=0;i<10;i++)
      cout<< "array elt " << i << " :" << iptr[i] << endl;

cout << "at end of loop i is:" << i << endl;

  cout<< "Loop 5: " << endl;
// use pointer iptr to iterate through the array
  for (iptr=arr; iptr<arr+10; iptr++)
      cout<< "array elt " << *iptr << endl;

  cout<< "Loop 6: " << endl;
// use pointer iptr to iterate through the array
  for (iptr=arr; iptr<=&arr[9]; iptr++)
      cout<< "array elt " << *iptr << endl;

  return 0;
}





