Unless I've misunderstood something, you're asking if you can pass an array to a function as an argument. Indeed you can pass arrays to functions. When you do, they are passed by reference.
That's an amusing question: "which modifier will guarantee to not change an array argument". Modifiers by definition modify. Does that answer your question?