/* * Simple program to illustrate working on an array using either indices * or pointers. */ #include /* print elements of array using index */ void foobar(int a[], int sz) { printf("in foobar sizeof a %d\n", (int) sizeof a); for (int i = 0; i < sz; ++i) { printf("a[%d] is %d\n", i, a[i]); } } /* print elements of array using pointer */ void barfoo(int * a, int sz) { printf("in barfoo sizeof a %d\n", (int) sizeof a); for (int * p = a; p < a+sz; ++p) { printf("a[%d] is %d\n", (int) (p-a), *p); } } /* main program */ #define ARRAYSIZE 10 int main(void) { int a[ARRAYSIZE]; printf("sizeof a %d\n", (int) sizeof a); /* a is not initialized so what's printed will be semi-random junk */ foobar(a, ARRAYSIZE); barfoo(a, ARRAYSIZE); return 0; }