Assume this code in C:

```
int a = 5;
int *b = &a;
*b = 6;

```

Notice that `b` had to be dereferenced using `*` to have a value reassigned.

However, the same doesn't go with a char pointer (a String):

```
char *name = "test";
name = "test2";

```

`name` did not have to be dereferenced. Why is that?