consider the following C++ struct:

```
typedef struct Person {
    std::string name;
    std::string children[MAX_NUM_CHILDREN];
} Person;

```

The question is, what happens in the following scenario:

```
void do_something(const Person& p) {
    Person person_copy = p;
}

```

The question is whether the `children` array of `p`, which is actually a member of type `std::string*`, is going to be copied as a pointer, or is every string in the `children` array going to be copied by value using the copy constructor?