#include #include void printSize(double arr[]); int main(int argc, char *argv[]) { double *p; double arr[42]; printf("%d\n", (int)sizeof p); /* printf("%p\n", p);*/ printf("%d\n", (int)sizeof &arr[0]); /* addr of 1st elem */ /* printf("%p\n", &arr[0]); printf("%p\n", &arr[1]);*/ printf("%d\n", (int)sizeof arr); /* sizeof the entire block (array) */ /* printf("%p\n", arr);*/ printf("%d\n", (int)(sizeof arr/sizeof arr[0])); /* number of elements */ printSize(arr); /* but what does this print? */ printf("arr[3] = %f\n", arr[3]); return 0; } void printSize(double arr[]) {int x =0; printf("%d\n", (int)sizeof arr); /* same as sizeof(double *) */ arr[3] = 42; printf("arr[3] = %f\n", arr[3]); }