Actually, even when passed as parameters they are pointers (which is very useful because then you can modify the original array in a command/function). You have to explicitly use COPY if you want to make a full copy of an array.