Which of the following statements are correct, about pointers and arrays in C++? A. Arrays are contiguous memory blocks. B. A pointer can hold the address of an array element. C. \(int *P = arr;\) is valid if arr is an array. D. Function pointers cannot be used to call functions dynamically. E. Pointer arithmetic depends on data type size.