/* CSE 303, Spring 2009, Marty Stepp This program demonstrates that arrays forget their size when passed as parameters. Output: int=4, float=4, double=8 x uses 4 bytes a uses 20 bytes a[0] uses 4 bytes in f, a uses 4 bytes in f, a[0] uses 4 bytes */ #include void f(int a[], int size); int main(void) { int x; int a[5]; printf("int=%d, float=%d, double=%d\n", sizeof(int), sizeof(float), sizeof(double)); printf("x uses %d bytes\n", sizeof(x)); printf("a uses %d bytes\n", sizeof(a)); printf("a[0] uses %d bytes\n\n", sizeof(a[0])); f(a, 5); return 0; } void f(int a[], int size) { printf("in f, a uses %d bytes\n", sizeof(a)); printf("in f, a[0] uses %d bytes\n", sizeof(a[0])); }