/* This program is an exercise in function calling with passing by address/pointers, and how arrays work in function calls Source: Greg Perry, Absolute Beginners guide to C */ #include int changeSome(int i, float *newX, int Ary[]); main() { int i = 10; int cnt; float x = 20.5; int iAry[] = {10, 20, 30, 40, 50}; printf("Here are main's variables before the function:\n"); printf("i = %d\n", i); printf("x = %.1f\n", x); for(cnt = 0; cnt < 5; cnt++) { printf("iAry[%d] = %d\n", cnt, iAry[cnt]); } changeSome(i, &x, iAry); printf("Here are main()'s variables after the function call:\n"); printf("i = %d\n", i); printf("x = %.1f\n", x); for(cnt = 0; cnt < 5; cnt++) { printf("iAry[%d] = %d\n", cnt, iAry[cnt]); } return 0; } int changeSome(int i, float *newX, int Ary[]) { i = 47; *newX = 47; Ary[0] = 100; Ary[1] = 200; Ary[2] = 300; Ary[3] = 400; Ary[4] = 500; return 0; }