Yes! In C++ just like in C, and array is simply a pointer, pointers are very similar to references, but a bit more complicated, they are exactly what you should learn in order to answer your question
Basically, a pointer is a number that holds the memory location of a variable, think of your memory as a huge array, that starts at cero and ends at the index of, well, the number of bytes of memory you have aviliable, then the pointer would represent the index of this hipotetical array where your variable is stored. In the case of an array, arrays are simply lists of values that are placed one after another in memory, so when you realize that you undestand that, for example, an array of ints is literaly the same thing as a pointer to an int. Since an array is secrely just a number that references a memory location, arrays are always passed around as memory references, and as such, as "passed by reference" (Pointers are the other way to pass a variable by reference in C++. The type of reference parameters you define like void function(int& x)
are mostly an abstraction of pointers)
Keep in mind tho, that this is mostly pertinent to C, since in C++ you should NOT be using this type of arrays in most cases, instead you probably want to use and std::array (A more robust version of arrays that are introduced in the C++ standard library) or an std::vector (Like an array, but it's size can change at runtime). When you use them, you no longer have to think about them as pointers since you can now abstract them as just more generic collections of data, and you also don't have to deal with pointers directly (That gets very messy very quickly). Pointers are still being used behind the scenes, but you don't really have to worry about them