/* Program to demonstrate pointers (int array) Version 1.0 / 2001.09.01. Peter Schindler pstrainer@gmx.net */ #include #include #include /* Declaration of globals *****************************/ void suba (int ix[]); void subb (int *px); /* Main program *************************************/ void main (void){ int i,ia[100]; int *pia; printf("Pointer Test Program\n\n"); // init array ai for (i=0;i<100;i++) {ia[i]=i*2;} // set pointer pia to the address of ia pia=&ia[0]; // send array (pointer!) to subroutine printf("main01"); // print elements for (i=0;i<8;i++) {printf("%5d",ia[i]);} printf("\n"); suba(ia); printf("main02"); // print elements for (i=0;i<8;i++) {printf("%5d",ia[i]);} printf("\n\n"); // send pointer to subroutine printf("main03"); // print elements for (i=0;i<8;i++) {printf("%5d",ia[i]);} printf("\n"); subb(pia); printf("main04"); // print elements for (i=0;i<8;i++) {printf("%5d",ia[i]);} printf("\n\n"); printf("End of program\n"); _getch(); } /* Get integer array and change it (add 10) **********************/ void suba (int ix[]) { int i; printf("suba01"); // print elements for (i=0;i<8;i++) {printf("%5d",ix[i]);} printf("\n"); for (i=0;i<5;i++) {ix[i]+=10;} // change elements of array printf("suba02"); // print elements for (i=0;i<8;i++) {printf("%5d",ix[i]);} printf("\n"); } /* Get pointer to int array, change it (add 200) **************/ void subb (int *px) { int i; printf("subb01"); // print elements for (i=0;i<8;i++) {printf("%5d",*(px+i));} printf("\n"); for (i=0;i<5;i++) {*(px+i)+=200;} // change elements of array printf("subb02"); // print elements for (i=0;i<8;i++) {printf("%5d",*(px+i));} printf("\n"); } /* eof ************************************************/