Pointer or Copied Value?

Hello

if I have the following code:

public class myClassA
{
 ....
}

public class myClassB
{
   public myClassA[] _myClassA;

   public void Awake()
   {
      MyFunction(_myClassA[]);
   }

   public void (myClassA classA[])
   {
     ...//I need help here with classA
   }
}

So when I know modify classA will it also change the values of _myClassA or will it create an exact copy of the class?

And how do I generally know which variables get copied and which not? Like I know that int will be copied but GameObject is always a reference.

Best regards,

Fred

The difference between value types and reference types is explained in DataTypes - Unity Learn