/* arrays.c demonstrates arrays and pointers in C */ #include void init( int a[] ) { int i; for ( i=0; i<10; i++ ) { a[i] = i; } } // end of init() void print0( int a[] ) { int i; printf( "print0: " ); for ( i=0; i<10; i++ ) { printf( "%d ",a[i] ); } printf( "\n" ); } // end of print0() void print1( int *a ) { int i; printf( "print1: " ); for ( i=0; i<10; i++ ) { printf( "%d ",a[i] ); } printf( "\n" ); } // end of print1() void print2( int *a ) { int i; printf( "print2: " ); for ( i=0; i<10; i++ ) { printf( "%d ",*(a+i) ); } printf( "\n" ); } // end of print2() void print3( int *a ) { int i; int *pa = &a[0]; printf( "print3: " ); for ( i=0; i<10; i++ ) { printf( "%d ",*pa ); pa++; } printf( "\n" ); } // end of print3() void print4( int *a ) { int i; printf( "print4: " ); for ( i=0; i<10; i++ ) { printf( "%d ",*a ); a++; // you can do this here because a is a function variable } printf( "\n" ); } // end of print4() main() { int a[10]; // declare an array of 10 ints int i; init( a ); print0( a ); print1( a ); print2( a ); print3( a ); print4( a ); /* printf( "print5: " ); for ( i=0; i<10; i++ ) { printf( "%d ",*a ); a++; // you cannot do this where a[] was declared } printf( "\n" ); */ }